changeset 116:205fc01d5eb4

kmbscreens: replace bat+c with py committer: GitHub <noreply@github.com>
author Paper <37962225+mrpapersonic@users.noreply.github.com>
date Sat, 04 Feb 2023 13:46:06 -0500
parents f10492e8720b
children 40a7b6d9bd3b
files kmbscreens/kmbscreens.bat kmbscreens/kmbscreens.py kmbscreens/randfile.c
diffstat 3 files changed, 46 insertions(+), 53 deletions(-) [+]
line wrap: on
line diff
--- a/kmbscreens/kmbscreens.bat	Mon Jan 23 23:58:22 2023 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-if [%~1] == [--debug] goto skip
-@echo off
-:skip
-SETLOCAL EnableDelayedExpansion
-REM for the Kill Me Baby Screens Bot twitter account
-
-for /F "delims=" %%a in ('randfile.exe') do set "episode=%%a"
-for /F "tokens=1 delims=." %%a in ('ffprobe -v quiet -of csv^=p^=0 -show_entries format^=duration "E:\Movies\Anime\Kill Me Baby\%episode%"') do set "length=%%a"
-
-echo %episode%
-echo %length%
-
-SET /A test=%RANDOM% * !length! / 32768 + 1
-
-echo %test%
-
-ffmpeg.exe -hide_banner -loglevel warning -i "E:\Movies\Anime\Kill Me Baby\%episode%" -y -frames:v 1 -ss %test% screencap.jpg
-
-for /F "usebackq tokens=1 delims=" %%a in (`twurl -H "upload.twitter.com" -X POST "/1.1/media/upload.json" --file "screencap.jpg" --file-field "media" ^| jq -r .media_id_string `) do set "media_id=%%a"
-twurl "/1.1/statuses/update.json" -d "media_ids=%media_id%"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kmbscreens/kmbscreens.py	Sat Feb 04 13:46:06 2023 -0500
@@ -0,0 +1,46 @@
+import os
+import tweepy
+import json
+import glob
+import subprocess
+import random
+API_KEY = "API_KEY"
+API_KEY_SECRET = "API_KEY_SECRET"
+access_tokens = []
+if os.path.exists("./credentials.json"):
+    with open("credentials.json", "r") as f:
+        access_tokens = json.load(f)
+
+oauth1_user_handler = None
+try:
+    oauth1_user_handler = tweepy.OAuth1UserHandler(
+        API_KEY, API_KEY_SECRET,
+        access_tokens[0], access_tokens[1],
+        callback="oob"
+    )
+except IndexError:
+    oauth1_user_handler = tweepy.OAuth1UserHandler(
+        API_KEY, API_KEY_SECRET,
+        callback="oob"
+    )
+
+if not access_tokens:
+    print(oauth1_user_handler.get_authorization_url())
+    pin = input("Input PIN: ")
+    access_tokens.extend(oauth1_user_handler.get_access_token(pin))
+    with open("credentials.json", "w") as f:
+        json.dump(access_tokens, f)
+
+episode = random.choice(list(glob.glob("D:\\Movies\\Anime\\Kill Me Baby\\*.mkv")))
+result = subprocess.run(["ffprobe.exe", "-v", "quiet", "-of", "csv=p=0",
+                  "-show_entries", "format=duration", episode],
+                 capture_output=True, text=True)
+test = random.randint(0, round(float(result.stdout.strip())))
+result = subprocess.run(["ffmpeg.exe", "-hide_banner", "-loglevel",
+                  "warning", "-i", episode, "-y", "-frames:v", "1",
+                  "-ss", str(test), "screencap.jpg"])
+
+api = tweepy.API(oauth1_user_handler)
+with open("screencap.jpg", "rb") as f:
+    media = api.media_upload(None, file=f)
+api.update_status("", media_ids=[media.media_id_string])
--- a/kmbscreens/randfile.c	Mon Jan 23 23:58:22 2023 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-#include <stdio.h>
-#include <dirent.h>
-#include <stdlib.h>
-#include <time.h>
-
-int main(void) {
-	srand((unsigned)time(NULL));
-	DIR *d;
-	struct dirent *dir;
-	d = opendir("E:\\Movies\\Anime\\Kill Me Baby");
-	int count = 0;
-	char** ret = NULL;
-	if (d) {
-		while ((dir = readdir(d)) != NULL) {
-			char* dot = strrchr(dir->d_name, '.');
-			if (dot && !strcmp(dot, ".mkv")) {
-				ret = realloc(ret, (count+1)*sizeof(char*));
-				if (ret == NULL) return 1;
-				ret[count] = calloc(strlen(dir->d_name), sizeof(char));
-				if (ret[count] == NULL) { free(ret); return 2; }
-				strncpy(ret[count], dir->d_name, strlen(dir->d_name)*sizeof(char));
-				ret[count][strlen(dir->d_name)] = '\0';
-				count++;
-			}
-		}
-		closedir(d);
-	}
-	printf("%s\n", ret[rand() % count]);
-	for (int i = 0; i < count; i++)
-		free(ret[i]);
-	free(ret);
-	return 0;
-}
\ No newline at end of file