From 30a0c2a2739fe9545f70fcd1fa00bcb2d6d8ff9a Mon Sep 17 00:00:00 2001 From: Antonia Date: Wed, 27 Jul 2022 23:41:18 +0200 Subject: [PATCH 1/2] pass 'random' as argument to post a random comic that has not been published before --- noseears.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/noseears.py b/noseears.py index 2fde6c1..061fc1e 100644 --- a/noseears.py +++ b/noseears.py @@ -27,6 +27,8 @@ from bs4 import BeautifulSoup import os from mastodon import Mastodon import re +import random + instance = "https://botsin.space" baseurl = "https://wuzzy.neocities.org" @@ -36,7 +38,12 @@ seendir = os.path.join(datadir, "seen") if len(sys.argv) > 1 : - page = request.urlopen(baseurl+"/comic/"+sys.argv[1]) + n = sys.argv[1] + if sys.argv[1] == "random" : + # try posting a random comic + l = max([int(re.sub("[^0-9]", "", i)) for i in os.listdir(seendir)]) + n = str(random.randint(1, l)) + page = request.urlopen(baseurl+"/comic/"+n) else: page = request.urlopen(baseurl) From 47635ddd18972f24ca49b75e049a58ca97004103 Mon Sep 17 00:00:00 2001 From: Antonia Date: Thu, 28 Jul 2022 00:08:46 +0200 Subject: [PATCH 2/2] Added README, added option to post random comic --- README.md | 25 +++++++++++++++++++++++++ noseears.py | 9 +++++---- 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..7f25899 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Fediverse Nose Ears bot + +Posts the [Nose Ears](https://wuzzy.neocities.org/) comics to the +fediverse. It supports comic titles, images and alt texts. + +## Configuration + +To configure this bot, customize the first lines in the `noseears.py` +script to your needs, such as by setting the `instance` varible and +the `datadir` and `credfile` variables to indicate the position where +the bot should store its data and the credentials file +respectively. The credentials file can be generated using the +`mastodon.log_in` method. + +## Usage + +When supplied with no arguments, `noseears.py` tries to fetch the +latest nose ears comic. When supplied with a number as an argument, it +tries to fetch the comic with said number, and if "random" is passed +as an argument, it tries to fetch a random comic. + +## Copyright + +Copyright © 2022 Antonia , Licensed under GPL +Version 3 or later. diff --git a/noseears.py b/noseears.py index 061fc1e..3d0eb66 100644 --- a/noseears.py +++ b/noseears.py @@ -33,6 +33,7 @@ import random instance = "https://botsin.space" baseurl = "https://wuzzy.neocities.org" datadir = "data" +credfile= "cred" cachedir = os.path.join(datadir, "cache") seendir = os.path.join(datadir, "seen") @@ -67,8 +68,8 @@ if not img : print("No image found!") sys.exit(1) - -permalink = baseurl + "/comic/" + re.sub("[^0-9]", "", img) +number = re.sub("[^0-9]", "", img) # number of comic +permalink = baseurl + "/comic/" + number ## try to fetch comic from url if not os.path.exists(cachedir) : @@ -77,7 +78,7 @@ if not os.path.exists(seendir) : os.makedirs(seendir) fname = os.path.join(cachedir,img.split("/")[-1]) -seen = os.path.join(seendir,img.split("/")[-1]) +seen = os.path.join(seendir, number) if os.path.exists(seen) : sys.exit(0) @@ -86,7 +87,7 @@ if os.path.exists(seen) : request.urlretrieve(baseurl+img, fname) mastodon = Mastodon( - access_token="cred", + access_token=credfile, api_base_url=instance ) md = mastodon.media_post(fname, "image/png", description=alt)