min_delay = xsetbg_conf.get("xsetbg", "min_delay")
# Borrowed from http://stackoverflow.com/a/2765366
- td_re = re.compile('(?:(?P<years>\d+)y)?'
- '(?:(?P<months>\d+)m)?'
- '(?:(?P<days>\d+)d)?'
- '(?:T(?:(?P<hours>\d+)h)?'
- '(?:(?P<minutes>\d+)m)?(?:(?P<seconds>\d+)s)?)?')
+ td_re = re.compile('(?:(?P<years>\\d+)y)?'
+ '(?:(?P<months>\\d+)m)?'
+ '(?:(?P<days>\\d+)d)?'
+ '(?:T(?:(?P<hours>\\d+)h)?'
+ '(?:(?P<minutes>\\d+)m)?(?:(?P<seconds>\\d+)s)?)?')
td_dict = td_re.match(min_delay).groupdict(0)
delta = timedelta(days=int(td_dict['days']) +
(int(td_dict['months']) * 30) +
if xsetbg_db.select(
- '(is_image = 1) AND (last_shown IS NULL OR last_shown < %d)' %
+ '(is_image = 1) AND show AND (last_shown IS NULL OR last_shown < %d)' %
(time() - min_delay)).count() == 0:
error("No unshown images found. Run rescan_fs.py "
"or decrease min_delay. Abort.")
try:
timestamp = xsetbg_db.select(
- '(is_image = 1) AND (last_shown IS NOT NULL)',
+ '(is_image = 1) AND show AND (last_shown IS NOT NULL)',
orderBy='-last_shown')[0].last_shown
current_time = time()
# Select a random image that has never been shown
not_shown_select = xsetbg_db.select(
- '(is_image = 1) AND (last_shown IS NULL)')
+ '(is_image = 1) AND show AND (last_shown IS NULL)')
not_shown_count = not_shown_select.count()
if not_shown_count:
row = not_shown_select[random.randint(0, not_shown_count - 1)]
else:
old_shown_select = xsetbg_db.select(
- '(is_image = 1) AND '
+ '(is_image = 1) AND show AND '
'(last_shown IS NOT NULL AND last_shown < %d)' %
current_time - min_delay)
old_shown_count = old_shown_select.count()