From 4b282eb527fefe1d2949695aefff36c2ae62a901 Mon Sep 17 00:00:00 2001 From: Hykilpikonna Date: Wed, 11 May 2022 15:05:10 -0400 Subject: [PATCH] [+] Friends generation script --- .github/workflows/friends.py | 42 +++++++++++++++++++++++++++++++++ .github/workflows/generator.yml | 4 ++-- content/friends.json5 | 3 +++ 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/friends.py create mode 100644 content/friends.json5 diff --git a/.github/workflows/friends.py b/.github/workflows/friends.py new file mode 100644 index 0000000..969088c --- /dev/null +++ b/.github/workflows/friends.py @@ -0,0 +1,42 @@ +import json +import os +from pathlib import Path + +import json5 as json5 +import requests +import tweepy +from tweepy import User + + +def wget(url: str, file: Path): + r = requests.get(url) + file.write_bytes(r.content) + return str(file).replace('\\', '/') + + +if __name__ == '__main__': + token = os.environ['TWITTER_BEARER'] + auth = tweepy.OAuth2BearerHandler(token) + api = tweepy.API(auth) + + gen_path = Path('content/generated/friends') + (gen_path / 'img').mkdir(exist_ok=True, parents=True) + + # Loop through all friends + friends = json5.loads(Path('content/friends.json5').read_text()) + for f in friends: + if 'twitter' not in f: + continue + + name = f['twitter'] + u: User = api.get_user(screen_name=name) + + f['banner'] = '/' + wget(u.profile_banner_url, gen_path / f'img/{name}-banner.jpg') + f['avatar'] = '/' + wget(u.profile_image_url_https.replace('_normal', ''), gen_path / f'img/{name}-avatar.jpg') + + if 'link' not in f: + f['link'] = f'https://twitter.com/{name}' + + (gen_path / 'friends.json').write_text(json.dumps(friends)) + + print('Done') diff --git a/.github/workflows/generator.yml b/.github/workflows/generator.yml index e1ba804..b233d49 100644 --- a/.github/workflows/generator.yml +++ b/.github/workflows/generator.yml @@ -27,7 +27,7 @@ jobs: run: | set -xe python -VV - python -m pip install pyyaml + python -m pip install pyyaml tweepy json5 requests - name: "Run generator" run: "python .github/workflows/generator.py" @@ -43,4 +43,4 @@ jobs: # The message for the commit. # Default: 'Commit from GitHub Actions (name of the workflow)' - message: '[U] Generate json' \ No newline at end of file + message: '[U] Generate json' diff --git a/content/friends.json5 b/content/friends.json5 new file mode 100644 index 0000000..c80438a --- /dev/null +++ b/content/friends.json5 @@ -0,0 +1,3 @@ +[ + {name: 'Shu Lin', twitter: 'sauricat'} +]