Instagram2Fedi/src/main.py

72 lines
1.8 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
2021-08-31 14:03:06 +00:00
import os
import sys
2021-08-31 20:44:43 +00:00
import time
import datetime
import json
2021-08-31 14:03:06 +00:00
from mastodon import Mastodon
2021-08-31 15:47:21 +00:00
from colorama import Fore, Back, Style
from instaloader import Profile, Instaloader, LatestStamps
2021-11-11 11:51:48 +00:00
from arguments import process_arguments
2021-08-31 14:03:06 +00:00
2021-09-07 08:44:47 +00:00
from network import get_new_posts
2021-11-11 11:51:48 +00:00
2021-08-31 14:03:06 +00:00
2021-11-11 11:51:48 +00:00
print(sys.argv)
print("ARGUMENTS")
default_settings = {
"instance": None,
2022-08-31 18:02:54 +00:00
"instagram-user": None,
"user-name": "",
"user-password": None,
2021-11-11 11:51:48 +00:00
"token": None,
"check-interval": 3600,
2022-08-31 18:02:54 +00:00
"post-interval": 3600,
2021-11-11 11:51:48 +00:00
"fetch-count" : 10,
"carousel-limit": 4,
2021-11-11 11:51:48 +00:00
}
settings = process_arguments(sys.argv, default_settings)
2022-05-13 03:47:30 +00:00
print('SETTINGS' , settings)
2021-11-11 11:51:48 +00:00
agree = [1, True, "true", "True", "yes", "Yes"]
2022-04-13 18:53:05 +00:00
if (os.environ.get("USE_DOCKER")):
id_filename = "/app/already_posted.txt"
else:
id_filename = "./already_posted.txt"
with open(id_filename, "a") as f:
f.write("\n")
2021-11-11 11:51:48 +00:00
fetched_user = settings["instagram-user"]
mastodon_instance = settings["instance"]
mastodon_token = settings["token"]
2021-08-31 14:03:06 +00:00
2021-11-11 11:51:48 +00:00
post_limit = settings["fetch-count"]
time_interval_sec = settings["check-interval"] #1d
post_interval = settings["post-interval"]#1m
2021-11-11 11:51:48 +00:00
using_mastodon = settings["carousel-limit"] > 0;
mastodon_carousel_size = settings["carousel-limit"]
2022-08-31 18:02:54 +00:00
user = {
"name": settings["user-name"],
"password": settings["user-password"]
}
2021-08-31 14:03:06 +00:00
2021-08-31 18:57:12 +00:00
print(Fore.GREEN + '🚀 > Connecting to Mastodon/Pixelfed...')
2021-08-31 15:47:21 +00:00
print(Style.RESET_ALL)
print(datetime.datetime.now())
2021-08-31 14:03:06 +00:00
mastodon = Mastodon(
access_token = mastodon_token,
2021-08-31 20:57:31 +00:00
api_base_url = mastodon_instance
2021-08-31 18:57:12 +00:00
# api_base_url = 'https://pixelfed.tokyo/'
2021-08-31 14:03:06 +00:00
)
2021-08-31 20:50:06 +00:00
while True:
2022-08-31 18:02:54 +00:00
get_new_posts(mastodon, mastodon_carousel_size, post_limit, id_filename, using_mastodon, mastodon_carousel_size, post_interval, fetched_user, user)
2021-09-01 04:14:05 +00:00
time.sleep(time_interval_sec)