aboutsummaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'main.py')
-rw-r--r--main.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..266bb53
--- /dev/null
+++ b/main.py
@@ -0,0 +1,70 @@
+import argparse
+import os
+
+import praw
+from time import sleep
+
+from nextcloud import NextCloud
+from praw.models.util import stream_generator
+
+from downloader import Downloader
+from uploader import create_folders, upload_file
+
+parser = argparse.ArgumentParser(description="Monitor saved")
+parser.add_argument('-c', '--client-id',
+ help="Reddit client id",
+ default=os.environ.get('CLIENT_ID', ''))
+parser.add_argument('-s', '--client-secret',
+ help="Reddit client secret",
+ default=os.environ.get('CLIENT_SECRET', ''))
+parser.add_argument('-u', '--reddit-username',
+ help="Reddit username",
+ default=os.environ.get('REDDIT_USERNAME', ''))
+parser.add_argument('-p', '--reddit-password',
+ help="Reddit user password",
+ default=os.environ.get('REDDIT_PASSWORD', ''))
+parser.add_argument('-P', '--nextcloud-password',
+ help="Nextcloud Password",
+ default=os.environ.get('NEXTCLOUD_PASSWORD', ''))
+parser.add_argument('-U', '--nextcloud-username',
+ help="Nextcloud Username",
+ default=os.environ.get('NEXTCLOUD_USERNAME', ''))
+parser.add_argument('-o', '--nextcloud-host',
+ help="Nextcloud Host",
+ default=os.environ.get('NEXTCLOUD_HOST', 'localhost'))
+parser.add_argument('-d', '--nextcloud-path',
+ help="Nextcloud root folder",
+ default=os.environ.get('NEXTCLOUD_PATH', 'im'))
+
+if __name__ == "__main__":
+ args = parser.parse_args()
+ reddit = praw.Reddit(client_id=args.client_id,
+ client_secret=args.client_secret,
+ password=args.reddit_password,
+ user_agent="hcrawler",
+ username=args.reddit_username)
+
+ nxc = NextCloud(
+ args.nextcloud_host,
+ user=args.nextcloud_username,
+ password=args.nextcloud_password,
+ session_kwargs={'verify': False}
+ )
+
+ redditor = reddit.redditor(args.reddit_username)
+
+
+ def upload(post):
+ url = post.url
+ create_folders(f"{args.nextcloud_path}/{post.subreddit}/", nxc)
+ with Downloader(url=url, reddit=reddit) as d:
+ d.download()
+ for path in d.paths:
+ if "-mobile" in path: # Remove mobile version
+ continue
+ upload_file(path, f"im/{post.subreddit}/{path}", nxc)
+
+
+ generator = stream_generator(redditor.saved, attribute_name="name")
+ for post in generator:
+ upload(post)