Fixing apscheduler version issue

This commit is contained in:
Gobinath 2016-10-15 22:40:08 +05:30
parent 6ea7380efb
commit dff6104187
3 changed files with 34 additions and 17 deletions

View File

@ -1,4 +1,6 @@
safeeyes (1.0.0-1) xenial; urgency=medium
safeeyes (1.0.2-1) xenial; urgency=medium
* Fixing apscheduler version mismatch
* Initial release

View File

@ -19,14 +19,12 @@
import gi
gi.require_version('Gdk', '3.0')
from gi.repository import Gdk, Gio, GLib
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.schedulers.base import BaseScheduler
from apscheduler.scheduler import Scheduler
import time, threading, sys, subprocess, logging
logging.basicConfig()
class SafeEyesCore:
scheduler_job_id = "safe_eyes_scheduler"
break_count = 0
long_break_message_index = 0
short_break_message_index = 0
@ -59,16 +57,19 @@ class SafeEyesCore:
return
# Pause the scheduler until the break
if self.scheduler:
self.scheduler.pause_job(self.scheduler_job_id)
if self.scheduler and self.scheduled_job:
self.scheduler.unschedule_job(self.scheduled_job)
self.scheduled_job = None
GLib.idle_add(lambda: self.process_job())
def process_job(self):
if self.is_full_screen_app_found():
# If full screen app found, do not show break screen.
# Resume the scheduler
if self.scheduler:
self.scheduler.resume_job(self.scheduler_job_id)
self.scheduled_job = self.scheduler.add_interval_job(self.scheduler_job, minutes=self.break_interval)
return
self.break_count = ((self.break_count + 1) % self.no_of_short_breaks_per_long_break)
@ -83,6 +84,7 @@ class SafeEyesCore:
# Wait for the pre break warning period
time.sleep(self.pre_break_warning_time)
# User can disable SafeEyes during notification
if self.active:
message = ""
if self.is_long_break():
@ -114,14 +116,14 @@ class SafeEyesCore:
time.sleep(1) # Sleep for 1 second
seconds -= 1
# Timeout -> Close the break alert
# Loop terminated because of timeout (not skipped) -> Close the break alert
if not self.skipped:
self.end_break()
# Resume the scheduler
if self.active:
if self.scheduler:
self.scheduler.resume_job(self.scheduler_job_id)
self.scheduled_job = self.scheduler.add_interval_job(self.scheduler_job, minutes=self.break_interval)
self.skipped = False
@ -131,6 +133,7 @@ class SafeEyesCore:
def is_long_break(self):
return self.break_count == self.no_of_short_breaks_per_long_break - 1
# User skipped the break using Skip button
def reset(self):
self.skipped = True
@ -141,7 +144,7 @@ class SafeEyesCore:
if not self.active:
self.active = True
if self.scheduler:
self.scheduler.resume_job(self.scheduler_job_id)
self.scheduled_job = self.scheduler.add_interval_job(self.scheduler_job, minutes=self.break_interval)
"""
Pause the timer
@ -149,13 +152,16 @@ class SafeEyesCore:
def pause(self):
if self.active:
self.active = False
if self.scheduler:
self.scheduler.pause_job(self.scheduler_job_id)
if self.scheduler and self.scheduled_job:
self.scheduler.unschedule_job(self.scheduled_job)
self.scheduled_job = None
def stop(self):
if self.scheduler:
self.active = False
self.scheduler.pause_job(self.scheduler_job_id)
if self.scheduled_job:
self.scheduler.unschedule_job(self.scheduled_job)
self.scheduled_job = None
self.scheduler.shutdown(wait=False)
self.scheduler = None
@ -165,8 +171,8 @@ class SafeEyesCore:
def start(self):
self.active = True
if not self.scheduler:
self.scheduler = BackgroundScheduler()
self.scheduler.add_job(self.scheduler_job, 'interval', minutes=self.break_interval, id=self.scheduler_job_id)
self.scheduler = Scheduler()
self.scheduled_job = self.scheduler.add_interval_job(self.scheduler_job, minutes=self.break_interval)
self.scheduler.start()
"""

View File

@ -100,7 +100,7 @@ def disable_safeeyes():
def prepare_local_config_dir():
config_dir_path = os.path.join(os.path.expanduser('~'), '.config/safeeyes/style')
startup_file_path = os.path.join(os.path.expanduser('~'), '.config/autostart/safeeyes.desktop')
startup_dir_path = os.path.join(os.path.expanduser('~'), '.config/autostart')
try:
os.makedirs(config_dir_path)
except OSError as exc:
@ -111,8 +111,17 @@ def prepare_local_config_dir():
if not os.path.isfile(config_file_path):
shutil.copy2(system_config_file_path, config_file_path)
try:
os.makedirs(startup_dir_path)
except OSError as exc:
if exc.errno == errno.EEXIST and os.path.isdir(startup_dir_path):
pass
else:
raise
# Add to startup for the first time only
shutil.copy2(desktop_file, startup_file_path)
shutil.copy2(desktop_file, (startup_dir_path + "/safeeyes.desktop"))
if not os.path.isfile(style_sheet_path):
shutil.copy2(system_style_sheet_path, style_sheet_path)