mirror of
https://github.com/reddit-archive/reddit1.0.git
synced 2026-04-16 06:18:27 +02:00
70 lines
3.0 KiB
Common Lisp
70 lines
3.0 KiB
Common Lisp
;;;; Copyright 2018 Reddit, Inc.
|
|
;;;;
|
|
;;;; Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
;;;; this software and associated documentation files (the "Software"), to deal in
|
|
;;;; the Software without restriction, including without limitation the rights to
|
|
;;;; use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
;;;; of the Software, and to permit persons to whom the Software is furnished to do
|
|
;;;; so, subject to the following conditions:
|
|
;;;;
|
|
;;;; The above copyright notice and this permission notice shall be included in all
|
|
;;;; copies or substantial portions of the Software.
|
|
;;;;
|
|
;;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
;;;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
;;;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
;;;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
;;;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
;;;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
;;;; SOFTWARE.
|
|
|
|
(in-package :reddit)
|
|
|
|
(defparameter *mail-prog* "/usr/bin/mail")
|
|
|
|
(defparameter *user* "ZG1haWw=")
|
|
(defparameter *pass* "Ymxhcmc=")
|
|
(defparameter *mail-server* "216.55.162.13")
|
|
|
|
(defun send-reddit-email (to from subject message)
|
|
(mp:make-process
|
|
#'(lambda ()
|
|
(ignore-errors
|
|
(send-email *mail-server* from to subject message :username *user* :password *pass*)))))
|
|
|
|
(defun info-email-body (user password)
|
|
(with-output-to-string (s)
|
|
(format s "Your login information for http://reddit.com is:~%~%")
|
|
(format s "~4tUsername: ~a~%" user)
|
|
(format s "~4tPassword: ~a~%~%" password)
|
|
(format s "Thank you for using reddit.com!")))
|
|
|
|
(defun send-login-info (to user pass)
|
|
(send-reddit-email to "reddit@reddit.com" "reddit.com login information"
|
|
(info-email-body user pass)))
|
|
|
|
(defun recommend-email-body (from title link &optional personal)
|
|
(with-output-to-string (s)
|
|
(format s "This email was sent to you by: ~a~%~%" from)
|
|
(if personal
|
|
(format s "~a~%~%" personal)
|
|
(format s "A user at reddit.com thought you would find this link interesting:~%~%"))
|
|
(format s "~a~%" title)
|
|
(format s "~a~%~%" link)
|
|
(format s "Check out http://reddit.com to see what's new online today!~%~%")
|
|
(format s "If you have any questions regarding this email direct them to feedback@reddit.com")))
|
|
|
|
(defun send-recommendation (userid articleid ip addresses from personal)
|
|
(let* ((tl (site-tl articleid))
|
|
(title (first tl))
|
|
(url (second tl))
|
|
(sub (format nil "reddit.com: ~a" title))
|
|
(body (recommend-email-body from title url personal)))
|
|
(dolist (to (cond ((listp addresses)
|
|
addresses)
|
|
((atom addresses) (list addresses))))
|
|
(when (valid-email userid ip to)
|
|
(send-reddit-email to from sub body)
|
|
(email-sent userid articleid ip to)))))
|
|
|