Skip to content

Commit

Permalink
♻️ refactor: refactor codebase #2
Browse files Browse the repository at this point in the history
  • Loading branch information
pnguyen215 committed Mar 24, 2024
1 parent 8b7b700 commit 8f92e05
Showing 1 changed file with 40 additions and 15 deletions.
55 changes: 40 additions & 15 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
import os
import shutil

ASSETS_DIR = "assets"
IMAGES_DIR = "images"
VIDEOS_DIR = "videos"
CAPTIONS_DIR = "captions"
PROFILES_DIR = "profiles"


class Logger:
def __init__(self, filename_logger):
Expand All @@ -19,12 +25,11 @@ def __init__(self, username, logger):
self.username = username
self.logger = logger
self.ins = instaloader.Instaloader()
self.profile = instaloader.Profile.from_username(self.ins.context, username)
self.root_dir = "assets"
self.image_dir = os.path.join(self.root_dir, username, "images")
self.video_dir = os.path.join(self.root_dir, username, "videos")
self.caption_dir = os.path.join(self.root_dir, username, "captions")
self.profile_dir = os.path.join(self.root_dir, username, "profiles")
self.root_dir = ASSETS_DIR
self.image_dir = os.path.join(self.root_dir, username, IMAGES_DIR)
self.video_dir = os.path.join(self.root_dir, username, VIDEOS_DIR)
self.caption_dir = os.path.join(self.root_dir, username, CAPTIONS_DIR)
self.profile_dir = os.path.join(self.root_dir, username, PROFILES_DIR)

def create_directories(self):
os.makedirs(self.image_dir, exist_ok=True)
Expand All @@ -46,15 +51,35 @@ def move_files(self, file_extension, target_dir):
self.logger.error("Error moving file %s: %s", file, e)

def download_posts(self):
for post in self.profile.get_posts():
if post.is_video:
self.ins.download_post(post, target=self.username)
self.move_files(".mp4", self.video_dir)
else:
self.ins.download_post(post, target=self.username)
self.move_files(".jpg", self.image_dir)
self.move_files(".txt", self.caption_dir)
self.move_files(".json.xz", self.profile_dir)
ctx = self.access_by_username_context()
if ctx:
try:
for post in ctx.get_posts():
if post.is_video:
self.ins.download_post(post, target=self.username)
self.move_files(".mp4", self.video_dir)
else:
self.ins.download_post(post, target=self.username)
self.move_files(".jpg", self.image_dir)
self.move_files(".txt", self.caption_dir)
self.move_files(".json.xz", self.profile_dir)
except Exception as e:
self.logger.error("Error downloading posts: %s", e)

def access_by_username_context(self):
try:
return instaloader.Profile.from_username(self.ins.context, self.username)
except Exception as e:
self.logger.error("Error fetching by username: %s, %s", self.username, e)
return None

def access_by_credentials_context(self, username, password):
try:
self.ins.login(username, password)
return instaloader.Profile.from_username(self.ins.context, self.username)
except Exception as e:
self.logger.error("Error logging by username: %s, %s", username, e)
return None

def clean_up(self):
shutil.rmtree(self.username)
Expand Down

0 comments on commit 8f92e05

Please sign in to comment.