Compare commits
2 Commits
21f872d77c
...
395280a363
Author | SHA1 | Date | |
---|---|---|---|
395280a363 | |||
5a4d808f89 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,3 +3,5 @@
|
|||||||
rss.iml
|
rss.iml
|
||||||
rss
|
rss
|
||||||
fetchdapenti
|
fetchdapenti
|
||||||
|
/run.sh
|
||||||
|
/sendmail
|
@ -88,6 +88,10 @@ func fetch(u string) (r rss2.Item) {
|
|||||||
var hadSend = safety.NewMap[string, struct{}]()
|
var hadSend = safety.NewMap[string, struct{}]()
|
||||||
|
|
||||||
func downAndSendMail(doc *goquery.Document, title string) {
|
func downAndSendMail(doc *goquery.Document, title string) {
|
||||||
|
if err := mail.CheckEnv(); err != nil {
|
||||||
|
log.Println("err", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
type m struct {
|
type m struct {
|
||||||
tit string
|
tit string
|
||||||
content string
|
content string
|
||||||
|
16
mail/mail.go
16
mail/mail.go
@ -7,23 +7,29 @@ import (
|
|||||||
"os/exec"
|
"os/exec"
|
||||||
)
|
)
|
||||||
|
|
||||||
func SendMail(subject string, content string, files ...string) error {
|
var cm, subjectParam, contentParam, fileParam string
|
||||||
cm := os.Getenv("mail_cmd_path")
|
|
||||||
|
func CheckEnv() error {
|
||||||
|
cm = os.Getenv("mail_cmd_path")
|
||||||
if cm == "" {
|
if cm == "" {
|
||||||
return errors.New("cmd can't empty")
|
return errors.New("cmd can't empty")
|
||||||
}
|
}
|
||||||
subjectParam := os.Getenv("mail_cmd_subject_param_name")
|
subjectParam = os.Getenv("mail_cmd_subject_param_name")
|
||||||
if subjectParam == "" {
|
if subjectParam == "" {
|
||||||
return errors.New("title param name empty")
|
return errors.New("title param name empty")
|
||||||
}
|
}
|
||||||
contentParam := os.Getenv("mail_cmd_content_param_name")
|
contentParam = os.Getenv("mail_cmd_content_param_name")
|
||||||
if contentParam == "" {
|
if contentParam == "" {
|
||||||
return errors.New("content param name emtpy")
|
return errors.New("content param name emtpy")
|
||||||
}
|
}
|
||||||
fileParam := os.Getenv("mail_cmd_file_param_name")
|
fileParam = os.Getenv("mail_cmd_file_param_name")
|
||||||
if fileParam == "" {
|
if fileParam == "" {
|
||||||
return errors.New("file empty")
|
return errors.New("file empty")
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func SendMail(subject string, content string, files ...string) error {
|
||||||
v := []string{subjectParam, subject, contentParam, content}
|
v := []string{subjectParam, subject, contentParam, content}
|
||||||
for _, f := range files {
|
for _, f := range files {
|
||||||
if f != "" {
|
if f != "" {
|
||||||
|
17
main.go
17
main.go
@ -1,6 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
str "github.com/fthvgb1/wp-go/helper/strings"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -62,39 +63,45 @@ func penti(w http.ResponseWriter, req *http.Request) {
|
|||||||
|
|
||||||
func zhihuDaily(w http.ResponseWriter, req *http.Request) {
|
func zhihuDaily(w http.ResponseWriter, req *http.Request) {
|
||||||
io.WriteString(w, fetch("https://feedx.best/rss/zhihudaily.xml", func(s string) string {
|
io.WriteString(w, fetch("https://feedx.best/rss/zhihudaily.xml", func(s string) string {
|
||||||
return filterItem(s, time.Now(), 1)
|
return filterItem(s, time.Now(), recentDay)
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
func tjxz(w http.ResponseWriter, r *http.Request) {
|
func tjxz(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
io.WriteString(w, fetch("https://feedx.best/rss/tjxz.xml", func(s string) string {
|
io.WriteString(w, fetch("https://feedx.best/rss/tjxz.xml", func(s string) string {
|
||||||
return filterItem(s, time.Now(), 1)
|
return filterItem(s, time.Now(), recentDay)
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
func bbcLearn(w http.ResponseWriter, _ *http.Request) {
|
func bbcLearn(w http.ResponseWriter, _ *http.Request) {
|
||||||
io.WriteString(w, fetch("https://www.bbc.co.uk/learningenglish/chinese", func(s string) string {
|
io.WriteString(w, fetch("https://www.bbc.co.uk/learningenglish/chinese", func(s string) string {
|
||||||
return bbclearn.LearnParse(s, 1)
|
return bbclearn.LearnParse(s, recentDay)
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
func theNewYorker(w http.ResponseWriter, r *http.Request) {
|
func theNewYorker(w http.ResponseWriter, r *http.Request) {
|
||||||
io.WriteString(w, fetch("https://feedx.best/rss/newyorker.xml", func(s string) string {
|
io.WriteString(w, fetch("https://feedx.best/rss/newyorker.xml", func(s string) string {
|
||||||
return filterItem(s, time.Now(), 1)
|
return filterItem(s, time.Now(), recentDay)
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
func voaLearnEnglish(w http.ResponseWriter, r *http.Request) {
|
func voaLearnEnglish(w http.ResponseWriter, r *http.Request) {
|
||||||
io.WriteString(w, fetch("https://feedx.best/rss/voalearningenglish.xml", func(s string) string {
|
io.WriteString(w, fetch("https://feedx.best/rss/voalearningenglish.xml", func(s string) string {
|
||||||
return filterItem(s, time.Now(), 1)
|
return filterItem(s, time.Now(), recentDay)
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var recentDay = 1
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
port := os.Getenv("port")
|
port := os.Getenv("port")
|
||||||
if port == "" {
|
if port == "" {
|
||||||
port = ":80"
|
port = ":80"
|
||||||
}
|
}
|
||||||
|
day := os.Getenv("rss_recent_day")
|
||||||
|
if day != "" {
|
||||||
|
recentDay = str.ToInt[int](day)
|
||||||
|
}
|
||||||
time.Local = time.FixedZone("CST", 3600*8)
|
time.Local = time.FixedZone("CST", 3600*8)
|
||||||
http.HandleFunc("/pentitugua", penti) //喷嚏图挂
|
http.HandleFunc("/pentitugua", penti) //喷嚏图挂
|
||||||
http.HandleFunc("/zhihuDaily", zhihuDaily) //知乎日报
|
http.HandleFunc("/zhihuDaily", zhihuDaily) //知乎日报
|
||||||
|
Loading…
Reference in New Issue
Block a user