From 3cecab3d1c48c64b5572d6cae1e474b86ab6055d Mon Sep 17 00:00:00 2001 From: Linus2punkt0 Date: Wed, 16 Aug 2023 09:16:06 +0200 Subject: [PATCH 1/2] added function for toggeling services --- README.md | 2 ++ crosspost.py | 31 ++++++++++++++++++++----------- toggle.py | 3 +++ 3 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 toggle.py diff --git a/README.md b/README.md index 6350a07..0532e38 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,6 @@ The Bluesky Crossposter is a python script that when running will automatically To get started, get the necessary keys and passwords and enter them in auth.py. Then fill in your paths in path.py. Finally set up a way for the code to be run periodically, for example a cronjob running every five or ten minutes. +In the file toggle.py you can disable posting to twitter or mastodon if you only want to post to one of them. You can also disable logging if you have limited space where the program will run. + Bluesky Crossposter™©® developed by denvitadrogen diff --git a/crosspost.py b/crosspost.py index 1d135d2..a81ceb1 100644 --- a/crosspost.py +++ b/crosspost.py @@ -4,6 +4,7 @@ from mastodon import Mastodon from datetime import datetime, timedelta from auth import * from paths import * +import toggle import json, os, urllib.request, random, string, shutil date_in_format = '%Y-%m-%dT%H:%M:%S' @@ -16,18 +17,20 @@ bsky.login(bsky_handle, bsky_password) # After changes in twitters API we need to use tweepy.Client to make posts as it uses version 2.0 of the API. # However, uploading images is still not included in 2.0, so for that we need to use tweepy.API, which uses # the previous version. -twitter = tweepy.Client(consumer_key=TWITTER_APP_KEY, - consumer_secret=TWITTER_APP_SECRET, - access_token=TWITTER_ACCESS_TOKEN, - access_token_secret=TWITTER_ACCESS_TOKEN_SECRET) +if toggle.Twitter: + twitter = tweepy.Client(consumer_key=TWITTER_APP_KEY, + consumer_secret=TWITTER_APP_SECRET, + access_token=TWITTER_ACCESS_TOKEN, + access_token_secret=TWITTER_ACCESS_TOKEN_SECRET) -tweepy_auth = tweepy.OAuth1UserHandler(TWITTER_APP_KEY, TWITTER_APP_SECRET, TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_TOKEN_SECRET) -twitter_images = tweepy.API(tweepy_auth) + tweepy_auth = tweepy.OAuth1UserHandler(TWITTER_APP_KEY, TWITTER_APP_SECRET, TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_TOKEN_SECRET) + twitter_images = tweepy.API(tweepy_auth) -mastodon = Mastodon( - access_token = MASTODON_TOKEN, - api_base_url = MASTODON_INSTANCE -) +if toggle.Mastodon: + mastodon = Mastodon( + access_token = MASTODON_TOKEN, + api_base_url = MASTODON_INSTANCE + ) # Getting posts from bluesky @@ -147,6 +150,8 @@ def post(posts): # Function for posting tweets def tweet(post, replyTo, images, postType): + if not toggle.Twitter: + return; mediaIds = [] # If post includes images, images are uploaded so that they can be included in the tweet if images: @@ -183,6 +188,8 @@ def tweet(post, replyTo, images, postType): # More or less the exact same function as for tweeting, but for tooting. def toot(post, replyTo, images): + if not toggle.Mastodon: + return; mediaIds = [] # If post includes images, images are uploaded so that they can be included in the toot if images: @@ -264,6 +271,9 @@ def writeLog(message): now = datetime.now().strftime("%d/%m/%Y %H:%M:%S") date = datetime.now().strftime("%y%m%d") message = str(now) + ": " + message + "\n" + print(message) + if not toggle.Logging: + return; log = logPath + date + ".log" if os.path.exists(log): append_write = 'a' @@ -271,7 +281,6 @@ def writeLog(message): append_write = 'w' dst = open(log, append_write) dst.write(message) - print(message) dst.close() # Cleaning up downloaded images diff --git a/toggle.py b/toggle.py new file mode 100644 index 0000000..f91c6c0 --- /dev/null +++ b/toggle.py @@ -0,0 +1,3 @@ +Twitter = True +Mastodon = True +Logging = True \ No newline at end of file From 67c8b33c30ad2b08f95f073b16c8c1368ee35146 Mon Sep 17 00:00:00 2001 From: Linus2punkt0 Date: Wed, 16 Aug 2023 09:28:00 +0200 Subject: [PATCH 2/2] added requirements.txt --- requirements.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..575edba --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +atproto==0.0.24 +Mastodon.py==1.8.0 +tweepy==4.14.0