import load_config import image_processing import os, sys, time def main(): if len(sys.argv) < 2: print("Usage: social-photos ", file=sys.stderr) sys.exit(1) else: path = sys.argv[1] # Check whether path points to a file or a directory. If neither, exit. if not os.path.exists(path): 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: 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) # 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 = {} if load_config.config['pixelfed']['enable']: print("Pixelfed publishing enabled") import publish_pixelfed posts['pixelfed'] = publish_pixelfed.upload(file_data) if load_config.config['flickr']['enable']: print("Flickr publishing enabled") import publish_flickr posts['flickr'] = publish_flickr.upload(file_data) ## Wait before boosing to ensure media has been processed print("Waiting to ensure media has been uploaded and processed before boosting") time.sleep(20) if load_config.config['boost_mastodon']['enable']: print("Mastodon Boost enabled") import boost_mastodon 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()