Chrunos commited on
Commit
5810c83
·
verified ·
1 Parent(s): 3e4af20

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -7
app.py CHANGED
@@ -7,7 +7,6 @@ import time
7
  import logging
8
  import random
9
  from functools import wraps
10
- from typing import Optional
11
 
12
  # Configure logging
13
  logging.basicConfig(
@@ -29,7 +28,6 @@ SESSION_FILE = os.path.join(SESSION_DIR, f"session-{INSTAGRAM_USERNAME}") if INS
29
  # Create session directory if not exists
30
  os.makedirs(SESSION_DIR, exist_ok=True)
31
 
32
- # Realistic browser user agents
33
  USER_AGENTS = [
34
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
35
  "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Safari/605.1.15",
@@ -37,13 +35,14 @@ USER_AGENTS = [
37
  ]
38
 
39
  def get_instaloader() -> instaloader.Instaloader:
40
- """Create and configure Instaloader instance with advanced session handling"""
41
  L = instaloader.Instaloader(
42
  sleep=True,
43
  request_timeout=300,
44
  max_connection_attempts=2,
45
  user_agent=random.choice(USER_AGENTS),
46
- sleep_seconds=15 # Increased initial delay
 
47
  )
48
 
49
  if not INSTAGRAM_USERNAME or not INSTAGRAM_PASSWORD:
@@ -54,7 +53,6 @@ def get_instaloader() -> instaloader.Instaloader:
54
  )
55
 
56
  try:
57
- # Attempt to load existing session with retry logic
58
  if SESSION_FILE and os.path.exists(SESSION_FILE):
59
  logger.info(f"Attempting to load session from {SESSION_FILE}")
60
  try:
@@ -68,11 +66,9 @@ def get_instaloader() -> instaloader.Instaloader:
68
  except Exception as e:
69
  logger.warning(f"Session load failed: {str(e)}, performing fresh login")
70
 
71
- # Fresh login with additional headers
72
  logger.info("Starting fresh login process")
73
  L.login(INSTAGRAM_USERNAME, INSTAGRAM_PASSWORD)
74
 
75
- # Add additional headers to mimic browser behavior
76
  L.context._session.headers.update({
77
  'Accept-Language': 'en-US,en;q=0.9',
78
  'Accept-Encoding': 'gzip, deflate, br',
@@ -105,6 +101,9 @@ def get_instaloader() -> instaloader.Instaloader:
105
  detail="Instagram login service unavailable"
106
  )
107
 
 
 
 
108
  def handle_instagram_errors(func):
109
  @wraps(func)
110
  async def wrapper(*args, **kwargs):
 
7
  import logging
8
  import random
9
  from functools import wraps
 
10
 
11
  # Configure logging
12
  logging.basicConfig(
 
28
  # Create session directory if not exists
29
  os.makedirs(SESSION_DIR, exist_ok=True)
30
 
 
31
  USER_AGENTS = [
32
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
33
  "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Safari/605.1.15",
 
35
  ]
36
 
37
  def get_instaloader() -> instaloader.Instaloader:
38
+ """Create and configure Instaloader instance with proper parameters"""
39
  L = instaloader.Instaloader(
40
  sleep=True,
41
  request_timeout=300,
42
  max_connection_attempts=2,
43
  user_agent=random.choice(USER_AGENTS),
44
+ # CORRECTED PARAMETER NAME:
45
+ delay_seconds=15 # Changed from sleep_seconds to delay_seconds
46
  )
47
 
48
  if not INSTAGRAM_USERNAME or not INSTAGRAM_PASSWORD:
 
53
  )
54
 
55
  try:
 
56
  if SESSION_FILE and os.path.exists(SESSION_FILE):
57
  logger.info(f"Attempting to load session from {SESSION_FILE}")
58
  try:
 
66
  except Exception as e:
67
  logger.warning(f"Session load failed: {str(e)}, performing fresh login")
68
 
 
69
  logger.info("Starting fresh login process")
70
  L.login(INSTAGRAM_USERNAME, INSTAGRAM_PASSWORD)
71
 
 
72
  L.context._session.headers.update({
73
  'Accept-Language': 'en-US,en;q=0.9',
74
  'Accept-Encoding': 'gzip, deflate, br',
 
101
  detail="Instagram login service unavailable"
102
  )
103
 
104
+ # Rest of the code remains the same as previous version...
105
+
106
+
107
  def handle_instagram_errors(func):
108
  @wraps(func)
109
  async def wrapper(*args, **kwargs):