This repository was archived by the owner on Jan 13, 2021. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed
Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change 1+ ; Reports the users mentioned in the initially loaded tweets on a user's
2+ ; Twitter page.
3+
4+ (import hyper bs4)
5+
6+ (setv results {})
7+
8+ ; Get hold of a stream ID for the data for a single page.
9+ (defn request-page [conn path]
10+ (.request conn " GET" path))
11+
12+ ; Read the stream to exhaustion.
13+ (defn get-page-data [conn req-id]
14+ (-> (.get_response conn req-id) (.read )))
15+
16+ ; Yield all at-reply elements from the html.
17+ (defn at-replies [html]
18+ (let [[soup (bs4.BeautifulSoup html)]]
19+ (apply .find_all [soup] {" class_" " twitter-atreply" })))
20+
21+ (defn get-refs [replies]
22+ (list-comp (.get reply " href" ) [reply replies]))
23+
24+ (defn mentions [html]
25+ (for [ref (remove none? (get-refs (at-replies html)))]
26+ (-> (.lstrip ref " /" ) (yield ))))
27+
28+ ; Simple test: print the people referenced on the most recent tweets page.
29+ (defn main []
30+ (with [[conn (hyper.HTTPConnection " twitter.com" 443 )]]
31+ (let [[req-id (request-page conn " /Lukasaoz" )]]
32+ (for [mention (mentions (get-page-data conn req-id))]
33+ (print mention)))))
34+
35+ (main )
You can’t perform that action at this time.
0 commit comments