Commit ab88423f authored by Raphael Beer's avatar Raphael Beer

Refactor: read guestkey from .env

parent d39eb567
...@@ -8,3 +8,4 @@ MONGO_PORT=27017 ...@@ -8,3 +8,4 @@ MONGO_PORT=27017
MONGO_DB=tester MONGO_DB=tester
MONGO_RESULTS_COLLECTION=results MONGO_RESULTS_COLLECTION=results
MONGO_OVERSHOT_COLLECTION=overshot MONGO_OVERSHOT_COLLECTION=overshot
TWITTER_AUTH_KEY=GRAPHQL_KEY
...@@ -13,8 +13,6 @@ from aiohttp import web ...@@ -13,8 +13,6 @@ from aiohttp import web
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
from db import connect from db import connect
twitter_auth_key = "AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA"
routes = web.RouteTableDef() routes = web.RouteTableDef()
class UnexpectedApiError(Exception): class UnexpectedApiError(Exception):
...@@ -53,6 +51,8 @@ def next_session(): ...@@ -53,6 +51,8 @@ def next_session():
class TwitterSession: class TwitterSession:
_user_url = "https://api.twitter.com/graphql/SEn6Mq-OakvVOT1CJqUO2A/UserByScreenName?variables=" _user_url = "https://api.twitter.com/graphql/SEn6Mq-OakvVOT1CJqUO2A/UserByScreenName?variables="
twitter_auth_key = None
def __init__(self): def __init__(self):
self._headers = { self._headers = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
...@@ -83,7 +83,7 @@ class TwitterSession: ...@@ -83,7 +83,7 @@ class TwitterSession:
self._headers['X-Csrf-Token'] = cookie.value self._headers['X-Csrf-Token'] = cookie.value
async def get_guest_token(self): async def get_guest_token(self):
self._headers['Authorization'] = 'Bearer ' + twitter_auth_key self._headers['Authorization'] = 'Bearer ' + self.twitter_auth_key
async with self._session.post("https://api.twitter.com/1.1/guest/activate.json", headers=self._headers) as r: async with self._session.post("https://api.twitter.com/1.1/guest/activate.json", headers=self._headers) as r:
response = await r.json() response = await r.json()
guest_token = response.get("guest_token", None) guest_token = response.get("guest_token", None)
...@@ -165,7 +165,7 @@ class TwitterSession: ...@@ -165,7 +165,7 @@ class TwitterSession:
else: else:
await self.login_guest() await self.login_guest()
self._headers['Authorization'] = 'Bearer ' + twitter_auth_key self._headers['Authorization'] = 'Bearer ' + self.twitter_auth_key
async def get(self, url, retries=0): async def get(self, url, retries=0):
self.set_csrf_header() self.set_csrf_header()
...@@ -534,8 +534,10 @@ parser.add_argument('--port', type=int, default=8080, help='port which to listen ...@@ -534,8 +534,10 @@ parser.add_argument('--port', type=int, default=8080, help='port which to listen
parser.add_argument('--mongo-host', type=str, default='localhost', help='hostname or IP of mongoDB service to connect to') parser.add_argument('--mongo-host', type=str, default='localhost', help='hostname or IP of mongoDB service to connect to')
parser.add_argument('--mongo-port', type=int, default=27017, help='port of mongoDB service to connect to') parser.add_argument('--mongo-port', type=int, default=27017, help='port of mongoDB service to connect to')
parser.add_argument('--mongo-db', type=str, default='tester', help='name of mongo database to use') parser.add_argument('--mongo-db', type=str, default='tester', help='name of mongo database to use')
parser.add_argument('--twitter-auth-key', type=str, default=None, help='auth key for twitter guest session', required=True)
args = parser.parse_args() args = parser.parse_args()
TwitterSession.twitter_auth_key = args.twitter_auth_key;
ensure_dir(args.cookie_dir) ensure_dir(args.cookie_dir)
with open(args.account_file, "r") as f: with open(args.account_file, "r") as f:
......
...@@ -23,4 +23,5 @@ python3 ./backend.py \ ...@@ -23,4 +23,5 @@ python3 ./backend.py \
--port "$PORT" \ --port "$PORT" \
--mongo-host $MONGO_HOST \ --mongo-host $MONGO_HOST \
--mongo-port $MONGO_PORT \ --mongo-port $MONGO_PORT \
--mongo-db $MONGO_DB --mongo-db $MONGO_DB \
--twitter-auth-key $TWITTER_AUTH_KEY
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment