From e657f88ba05c54ef01ca9ace448ebfff4a23c161 Mon Sep 17 00:00:00 2001 From: muskit <15199219+muskit@users.noreply.github.com> Date: Tue, 16 May 2023 20:02:20 -0700 Subject: [PATCH] move credentials to .env --- README.md | 16 ++++++++++++++++ requirements.txt | 6 +++--- secrets.ini | 23 ----------------------- src/api_secrets.py | 22 +++++++++++----------- 4 files changed, 30 insertions(+), 37 deletions(-) delete mode 100644 secrets.ini diff --git a/README.md b/README.md index 423d3b9..394e8d0 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,22 @@ Twitter bot that tracks cross-company interactions between the non-JP branches o **This project was created to run [this account](https://twitter.com/NijiHolo_EN_ID).** +## `.env` +These need to be defined in a `.env` file at the project root (outside of `src`): +``` +# Scweet (scraping) +SCWEET_EMAIL= +SCWEET_USERNAME= +SCWEET_PASSWORD= + +# Twitter API bot keys (posting) +api_key= +api_secret= +oauth1_access_token= +oauth1_access_secret= +bearer_token= +``` + ## Running modes The bot may run in these modes: * Catch-up (`c`): intended to run only once, scan all accounts for cross-company tweets and post them. Terminate when done posting all. diff --git a/requirements.txt b/requirements.txt index aa9abf0..f8c83f2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ +python-dotenv nest-asyncio pytz +Scweet tweet-capture -tweepy -opencv-python -git+https://github.com/muskit/twint_2022_fix.git \ No newline at end of file +opencv-python \ No newline at end of file diff --git a/secrets.ini b/secrets.ini deleted file mode 100644 index 4289435..0000000 --- a/secrets.ini +++ /dev/null @@ -1,23 +0,0 @@ -## Twitter developer credentials. - -# ---->> MAKE SURE YOUR VALUES AREN'T UPLOADED TO THE REPO! <<---- -# -# This file should be added to .gitignore as a safeguard. -# -# If Git still wants to commit this file after changing its contents, -# force Git to stop tracking the file's changes: -# git update-index --assume-unchanged [ ...] -# -# To resume tracking its changes: -# git update-index --no-assume-unchanged [ ...] -# -# https://stackoverflow.com/questions/10755655/git-ignore-tracked-files - -# note: api_key/secret = consumer_key/secret - -[Credentials] -api_key=xxx -api_secret=yyy -bearer_token=zzz -oauth1_access_token=x -oauth1_access_secret=y diff --git a/src/api_secrets.py b/src/api_secrets.py index 2e50e12..ca13bda 100644 --- a/src/api_secrets.py +++ b/src/api_secrets.py @@ -1,41 +1,41 @@ ## Twitter developer credentials management. -import os -import configparser +from os.path import join, isfile +from dotenv import dotenv_values import util # returns dictionary of the Credentials section. # [NOT TO BE USED OUTSIDE OF THIS FILE.] -def __get_ini_credentials(): - c = configparser.RawConfigParser() - if len(c.read(os.path.join(util.get_project_dir(), 'secrets.ini'))) > 0 and c.has_section('Credentials'): - return c['Credentials'] +def __get_env(): + f = join(util.get_project_dir(), '.env') + if isfile(f): + return dotenv_values(f) return None # returns the consumer api_key stored in secrets.ini def api_key(): - c = __get_ini_credentials() + c = __get_env() return c.get(option='api_key', fallback='xxx') if c is not None else 'xxx' # returns the consumer api_secret stored in secrets.ini def api_secret(): - c = __get_ini_credentials() + c = __get_env() return c.get(option='api_secret', fallback='yyy') if c is not None else 'yyy' # returns the bearer_token stored in secrets.ini def bearer_token(): - c = __get_ini_credentials() + c = __get_env() return c.get(option='bearer_token', fallback='zzz') if c is not None else 'zzz' # returns the access_token stroed in secrets.ini def access_token(): - c = __get_ini_credentials() + c = __get_env() return c.get(option='oauth1_access_token', fallback='zzz') if c is not None else 'aaa' # returns the access_secret stroed in secrets.ini def access_secret(): - c = __get_ini_credentials() + c = __get_env() return c.get(option='oauth1_access_secret', fallback='zzz') if c is not None else 'bbb' def get_all_secrets():