theenglishway (time) 7 年 前
コミット
8c524b4ebd
3 ファイル変更29 行追加25 行削除
  1. 26 1
      twhatter/api.py
  2. 3 5
      twhatter/cli.py
  3. 0 19
      twhatter/query.py

+ 26 - 1
twhatter/api.py

@@ -1,3 +1,5 @@
+import requests
+from random import choice
 
 
 class Api():
@@ -5,9 +7,32 @@ class Api():
 
 
 class ApiUser(Api):
+    HEADERS_LIST = [
+        'Mozilla/5.0 (Windows; U; Windows NT 6.1; x64; fr; rv:1.9.2.13) Gecko/20101203 Firebird/3.6.13',
+        'Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
+        'Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201',
+        'Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16',
+        'Mozilla/5.0 (Windows NT 5.2; RW; rv:7.0a1) Gecko/20091211 SeaMonkey/9.23a1pre'
+    ]
+
     def __init__(self, user):
         self.user = user
 
     @property
     def init_page(self):
-        return 'https://twitter.com/{}'.format(self.user)
+        return requests.get(
+            'https://twitter.com/{}'.format(self.user),
+            headers={'User-Agent': choice(self.HEADERS_LIST)}
+        )
+
+    @property
+    def tweets_from(self, position):
+        return (
+            "https://twitter.com/i/profiles/show/{u}"
+            "/timeline"
+            "/tweets"
+            "?include_available_features=1"
+            "&include_entities=1"
+            "&max_position={pos}"
+            "&reset_error_state=false"
+        )

+ 3 - 5
twhatter/cli.py

@@ -1,22 +1,20 @@
 # coding: utf-8
 
 """Console script for twhatter."""
-import sys
 import click
 
-from twhatter.query import Query
 from twhatter.api import ApiUser
 from bs4 import BeautifulSoup
 from twhatter.parser import TweetList
-from twhatter.output import Print
+
 
 @click.command()
 @click.option('--user', prompt='User name to check',
               help='The person to greet.')
 def main(user):
     """Console script for twhatter."""
-    q = Query(ApiUser(user).init_page)
-    soup = BeautifulSoup(q.text, "lxml")
+    p = ApiUser(user).init_page
+    soup = BeautifulSoup(p.text, "lxml")
     t_list = TweetList(soup)
     for t in t_list:
         click.echo(t)

+ 0 - 19
twhatter/query.py

@@ -1,19 +0,0 @@
-import requests
-import random
-
-
-class Query:
-    HEADERS_LIST = [
-        'Mozilla/5.0 (Windows; U; Windows NT 6.1; x64; fr; rv:1.9.2.13) Gecko/20101203 Firebird/3.6.13',
-        'Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
-        'Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201',
-        'Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16',
-        'Mozilla/5.0 (Windows NT 5.2; RW; rv:7.0a1) Gecko/20091211 SeaMonkey/9.23a1pre'
-    ]
-
-    def __init__(self, url):
-        response = requests.get(
-            url,
-            headers={'User-Agent': random.choice(self.HEADERS_LIST)}
-        )
-        self.text = response.text