screen1.jpg

前言:

找到一個 LINE Bot 使用 Go 來搜尋 PTT:

https://github.com/mong0520/linebot-ptt-beauty

本來覺得很有趣,後來發現資料都是使用 MongoDB 的來用。手癢之下,決定把他整個修復完成。

修改過後的 Repo:

https://github.com/kkdai/linebot-ptt-beauty

幾個功能:

  • 即時透過 PTT 抓取資料
  • 即時透過 PTT 抓取最新圖片
  • 可以尋找到 Post Like 跟 DisLike

透過 GoQuery 來抓取 PTT Like/DisLike

主要是透過 https://github.com/kkdai/photomgr 自行開發的功能,主要想法如下:

  • .push-tag 來找出所有的 “推” 跟 “噓”
  • 透過 Text() 來判斷是推文,還是噓文。

全部程式碼如下:

func (p *PTT) GetPostLikeDis(target string) (int, int) {
	// Get https response with setting cookie over18=1
	resp := getResponseWithCookie(target)
	doc, err := goquery.NewDocumentFromResponse(resp)
	if err != nil {
		log.Println(err)
		return 0, 0
	}

	var likeCount int
	var disLikeCount int
	doc.Find(".push-tag").Each(func(i int, s *goquery.Selection) {
		if strings.Contains(s.Text(), "推") {
			likeCount++
		} else if strings.Contains(s.Text(), "噓") {
			disLikeCount++
		}
	})
	// fmt.Println("like:", likeCount, " dislike:", disLikeCount)
	return likeCount, disLikeCount
}

有興趣的可以看這個 PR https://github.com/kkdai/photomgr/pull/10

待辦事項:

  • 支援 PostgresSQL 來儲存使用者偏好
  • 支援最受歡迎文章
  • 支援隨機文章

其他資訊:

本來作者有弄 MongoDB ,但是似乎現在沒有找到免費的 Heroku 做法就算了。 不過有看到 PostgreSQL 的免費版本,看來還是可以記錄下來使用者喜愛的文章。

[Day07] 在 heroku 上使用免費的 postgresql

碎念一下:

每一次有大專案,或是很大型演講。總是覺得壓力大,這時候來寫個扣真的是一種放鬆的行為。


Buy Me A Coffee

Evan

Attitude is everything