mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#!/usr/bin/python
 | 
						|
 | 
						|
from model import Feed
 | 
						|
import session
 | 
						|
import datetime
 | 
						|
import sys
 | 
						|
 | 
						|
argv = session.argv()
 | 
						|
 | 
						|
feed = Feed.get(guid=argv[1])
 | 
						|
action = argv[2]
 | 
						|
 | 
						|
if action == 'done':
 | 
						|
    when = feed.notify_interval * feed.notify_unit
 | 
						|
elif action == 'snooze':
 | 
						|
    if len(argv) > 3:
 | 
						|
        when = int(argv[3])
 | 
						|
    else:
 | 
						|
        when = 3600
 | 
						|
else:
 | 
						|
    print '''Status: 400 Bad request
 | 
						|
Content-type: text/html
 | 
						|
 | 
						|
Unknown action %s''' % action
 | 
						|
    sys.exit(1)
 | 
						|
 | 
						|
feed.notify_next = datetime.datetime.utcnow() + datetime.timedelta(seconds=when)
 | 
						|
feed.save()
 | 
						|
 | 
						|
response = '''Content-type: text/html
 | 
						|
 | 
						|
<html><head><title>Alarm reset</title>
 | 
						|
<link rel="stylesheet" href="{base_url}/style.css">
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
 | 
						|
<div class="container">
 | 
						|
<h1>Alarm reset</h1>
 | 
						|
<div>
 | 
						|
<p id="reset">Alarm "<span class="name">{name}</span>" has been reset. You won't be notified for another <span class="duration">{duration}</span>.</p>
 | 
						|
 | 
						|
<p>Actions:</p>
 | 
						|
<ul>
 | 
						|
<li><a href="{edit_url}?feed={guid}">Edit this reminder</a></li>
 | 
						|
<li><a href="{edit_url}">Create another reminder</a></li>
 | 
						|
<li><a href="{base_url}">Visit the Reminder Me site</a></li>
 | 
						|
</ul>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<p class="back"><a href=".">Reminder Me</a></p>
 | 
						|
 | 
						|
</body></html>'''
 | 
						|
 | 
						|
when_left = when
 | 
						|
duration_list = []
 | 
						|
for (label,period) in [('month',86400*365/12),
 | 
						|
                       ('week',86400*7),
 | 
						|
                       ('day',86400),
 | 
						|
                       ('hour',3600),
 | 
						|
                       ('minute',60),
 | 
						|
                       ('second',1)]:
 | 
						|
    if when == period:
 | 
						|
        duration_list = [label]
 | 
						|
        break
 | 
						|
    
 | 
						|
    val = when_left/period
 | 
						|
    if val:
 | 
						|
        duration_list.append("%d %s%s" % (
 | 
						|
            val,
 | 
						|
            label,
 | 
						|
            val > 1 and 's' or ''))
 | 
						|
        when_left -= val*period
 | 
						|
 | 
						|
basedir=session.request_script_dir()
 | 
						|
 | 
						|
print response.format(guid=feed.guid,
 | 
						|
                      name=feed.name,
 | 
						|
                      edit_url="%s/edit.cgi" % basedir,
 | 
						|
                      base_url=basedir,
 | 
						|
                      duration=', '.join(duration_list))
 | 
						|
                      
 |