social-photos/src/main.py

73 lines
2.4 KiB
Python
Raw Normal View History

import load_config
import image_processing
2023-11-05 23:58:53 +00:00
import os, sys, time
def main():
if len(sys.argv) < 2:
2023-11-17 11:53:30 +00:00
print("Usage: social-photos <directory_or_file_path>", file=sys.stderr)
sys.exit(1)
else:
path = sys.argv[1]
2023-11-17 11:53:30 +00:00
# Check whether path points to a file or a directory. If neither, exit.
if not os.path.exists(path):
2023-11-17 11:53:30 +00:00
print(f"'{path}' does not exist.", file=sys.stderr)
sys.exit(1)
elif os.path.isfile(path):
print(f"'{path}' is a file.")
files = [path]
elif os.path.isdir(path):
print(f"'{path}' is a directory.")
files = list_files_in_directory(path)
else:
2023-11-17 11:53:30 +00:00
print(f"'{path}' is neither a file nor a directory.", file=sys.stderr)
sys.exit(1)
print("These files will be uploaded:")
for item in files:
print(item)
confirmation = input("Proceed? (y/n): ").strip().lower()
if confirmation != 'y':
print("Cancelling operation")
sys.exit(0)
file_data = []
for item in files:
item_data = image_processing.get_image_data(item)
file_data.append(item_data)
2023-11-05 21:13:57 +00:00
# Collection of post URL's which can be used for sharing features
# Where the API used doesn't support responding with a URL, a status
# message is provided.
posts = {}
2023-11-05 23:58:53 +00:00
if load_config.config['pixelfed']['enable']:
print("Pixelfed publishing enabled")
import publish_pixelfed
posts['pixelfed'] = publish_pixelfed.upload(file_data)
2023-11-05 14:42:08 +00:00
if load_config.config['flickr']['enable']:
print("Flickr publishing enabled")
2023-11-05 14:42:08 +00:00
import publish_flickr
2023-11-05 21:13:57 +00:00
posts['flickr'] = publish_flickr.upload(file_data)
2023-11-05 23:58:53 +00:00
## Wait before boosing to ensure media has been processed
print("Waiting to ensure media has been uploaded and processed before boosting")
time.sleep(20)
2023-11-05 21:13:57 +00:00
if load_config.config['boost_mastodon']['enable']:
print("Mastodon Boost enabled")
import boost_mastodon
2023-11-05 23:58:53 +00:00
posts['mastodon_boost'] = boost_mastodon.boost(posts['pixelfed'])
def list_files_in_directory(directory):
top_level_items = os.listdir(directory)
full_paths = [os.path.join(directory, item) for item in top_level_items]
return full_paths
if __name__ == "__main__":
main()