Skip to content

Commit 732147e

Browse files
committed
Merge remote-tracking branch 'upstream/dev'
2 parents 71037f0 + 1487c4f commit 732147e

1 file changed

Lines changed: 13 additions & 9 deletions

File tree

instagram_monitor.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -785,10 +785,13 @@ def generate_config_with_current_values() -> str:
785785
# Global tracking for last/next check times
786786
LAST_CHECK_TIME = None
787787
NEXT_CHECK_TIME = None
788+
788789
# Human-friendly global next-check display (used when NEXT_CHECK_TIME is not available)
789790
NEXT_CHECK_DISPLAY = None
790791
CHECK_COUNT = 0
791792

793+
START_TIME_SCRIPT = 0.0
794+
792795
# Global state for debug mode manual check trigger (thread-safe Event)
793796
# Will be initialized after threading is imported
794797
DEBUG_INPUT_THREAD = None
@@ -872,8 +875,6 @@ def _startup_sigint_handler(signum, frame):
872875
import threading
873876
import hashlib
874877

875-
start_time_script = time.time()
876-
877878
# Initialize the web dashboard data lock now that threading is imported
878879
# Important: this lock is acquired from multiple call-sites that can nest (e.g. helpers called inside other locked
879880
# regions). Use an RLock to avoid self-deadlocks that would freeze the web dashboard API
@@ -2490,10 +2491,9 @@ def update_ui_data(targets=None, config=None, check_count=None, last_check=None,
24902491
parts.append(f"last_check={last_check}")
24912492
if next_check is not None:
24922493
parts.append(f"next_check={next_check}")
2493-
if config:
2494-
if 'status_msg' in config:
2495-
parts.append(f"status_msg='{config['status_msg']}'")
2496-
if targets:
2494+
if isinstance(config, dict) and 'status_msg' in config:
2495+
parts.append(f"status_msg='{config['status_msg']}'")
2496+
if isinstance(targets, dict):
24972497
for tgt_user, tgt_data in targets.items():
24982498
tgt_parts = [tgt_user]
24992499
if isinstance(tgt_data, dict):
@@ -2515,7 +2515,10 @@ def update_ui_data(targets=None, config=None, check_count=None, last_check=None,
25152515
tgt_parts.append(f"following={tgt_data['following']}")
25162516
if 'session' in tgt_data:
25172517
s = tgt_data['session']
2518-
tgt_parts.append(f"session={s.get('username', '?')}(active={s.get('active')})")
2518+
if isinstance(s, dict):
2519+
tgt_parts.append(f"session={s.get('username', '?')}(active={s.get('active')})")
2520+
else:
2521+
tgt_parts.append(f"session={s}")
25192522
parts.append(f"[{', '.join(tgt_parts)}]")
25202523
if parts:
25212524
debug_print(f"UI Data Update: {', '.join(parts)}")
@@ -3874,7 +3877,7 @@ def convert_utc_str_to_tz_datetime(dt_str):
38743877
# Returns the current date/time in human readable format; eg. Sun 21 Apr 2024, 15:08:45
38753878
def get_cur_ts(ts_str=""):
38763879
fmt = "%d %b %Y, %I:%M:%S %p" if TIME_FORMAT_12H else "%d %b %Y, %H:%M:%S"
3877-
elapsed_time_script = int(time.time() - start_time_script)
3880+
elapsed_time_script = int(time.monotonic() - START_TIME_SCRIPT) if START_TIME_SCRIPT else 0
38783881
return (f'{ts_str}{calendar.day_abbr[(now_local_naive()).weekday()]} {now_local_naive().strftime(fmt)} (elapsed: {display_time(elapsed_time_script)})')
38793882

38803883

@@ -9231,7 +9234,7 @@ def get_target_paths(user):
92319234

92329235

92339236
def run_main():
9234-
global CLI_CONFIG_PATH, DOTENV_FILE, LOCAL_TIMEZONE, LIVENESS_CHECK_COUNTER, SESSION_USERNAME, SESSION_PASSWORD, CSV_FILE, DISABLE_LOGGING, INSTA_LOGFILE, OUTPUT_DIR, STATUS_NOTIFICATION, FOLLOWERS_NOTIFICATION, ERROR_NOTIFICATION, INSTA_CHECK_INTERVAL, DETECT_CHANGED_PROFILE_PIC, RANDOM_SLEEP_DIFF_LOW, RANDOM_SLEEP_DIFF_HIGH, imgcat_exe, SKIP_SESSION, SKIP_FOLLOWERS, SKIP_FOLLOWINGS, SKIP_FOLLOW_CHANGES, SKIP_GETTING_STORY_DETAILS, SKIP_GETTING_POSTS_DETAILS, GET_MORE_POST_DETAILS, SMTP_PASSWORD, stdout_bck, PROFILE_PIC_FILE_EMPTY, USER_AGENT, USER_AGENT_MOBILE, BE_HUMAN, ENABLE_JITTER
9237+
global CLI_CONFIG_PATH, DOTENV_FILE, LOCAL_TIMEZONE, LIVENESS_CHECK_COUNTER, SESSION_USERNAME, SESSION_PASSWORD, CSV_FILE, DISABLE_LOGGING, INSTA_LOGFILE, OUTPUT_DIR, STATUS_NOTIFICATION, FOLLOWERS_NOTIFICATION, ERROR_NOTIFICATION, INSTA_CHECK_INTERVAL, DETECT_CHANGED_PROFILE_PIC, RANDOM_SLEEP_DIFF_LOW, RANDOM_SLEEP_DIFF_HIGH, imgcat_exe, SKIP_SESSION, SKIP_FOLLOWERS, SKIP_FOLLOWINGS, SKIP_FOLLOW_CHANGES, SKIP_GETTING_STORY_DETAILS, SKIP_GETTING_POSTS_DETAILS, GET_MORE_POST_DETAILS, SMTP_PASSWORD, stdout_bck, PROFILE_PIC_FILE_EMPTY, USER_AGENT, USER_AGENT_MOBILE, BE_HUMAN, ENABLE_JITTER, START_TIME_SCRIPT
92359238
global DEBUG_MODE, VERBOSE_MODE, HOURS_VERBOSE, DASHBOARD_MODE, DASHBOARD_ENABLED, WEB_DASHBOARD_ENABLED, FOLLOWERS_CHURN_DETECTION, WEBHOOK_ENABLED, WEBHOOK_URL, WEBHOOK_STATUS_NOTIFICATION, WEBHOOK_FOLLOWERS_NOTIFICATION, WEBHOOK_ERROR_NOTIFICATION, DASHBOARD_CONSOLE, DASHBOARD_DATA, FOLLOWERS_CHURN_AUTODISABLED, FOLLOWERS_CHURN_AUTODISABLED_REASON
92369239
global WEB_DASHBOARD_HOST, WEB_DASHBOARD_PORT, WEB_DASHBOARD_TEMPLATE_DIR, mode_of_the_tool, DOWNLOAD_THUMBNAILS, THUMBNAILS_FORCED_BY_WEB, COLORED_OUTPUT, COLOR_THEME, TIME_FORMAT_12H
92379240
global PROXY_ENABLED, PROXY_URL, PROXY_CERT_PATH, PROXY_WEBHOOKS
@@ -9259,6 +9262,7 @@ def run_main():
92599262
print(f"{os.path.basename(sys.argv[0])} v{VERSION}")
92609263
sys.exit(0)
92619264

9265+
START_TIME_SCRIPT = time.monotonic()
92629266
stdout_bck = sys.stdout
92639267

92649268
# Initialise colour handling based on CLI args (early check) and terminal capabilities

0 commit comments

Comments
 (0)