from importlib import import_module from cantools.web import respond, succeed, fail, cgi_get def response(): scrape_target = cgi_get("scraper", choices=["lords", "fires", "buildings", "rent_control", "evictions", "murders"]) import_module("scrapers.%s"%(scrape_target,)).full_scan() respond(response, threaded=True)
from datetime import datetime, timedelta from cantools.web import respond from cantools.util import log, hlsify from cantools import config from model import * def response(): log("initiating cronscan", important=True) if config.autoexpire: # in days log("checking for expired VideoPosts", 1) n = datetime.now() cutoff = n - timedelta(int(config.autoexpire)) expired = VideoPost.query(VideoPost.modified < cutoff).all() log("deactivating %s expired VideoPosts"%(len(expired),), 2) for vp in expired: vp.live = False db.put_multi(expired) if config.autohls: vz = VideoPost.query().all() log("scanning %s VideoPosts for missing hls files"%(len(vz),), 1) for v in vz: hlsify(v.video.urlsafe()[1:]) log("cronscan complete") respond(response)
from cantools.web import respond, cgi_get, succeed from cantools.util import hlsify, transcode from model import db def response(): action = cgi_get("action") vid = db.get(cgi_get("v")).video if not vid: # no vid to process succeed() vpath = vid.urlsafe()[1:] if action == "hls": succeed(hlsify(vpath, check=cgi_get("check", default=False))) elif action == "mp4": transcode(vpath, slow=True) respond(response, threaded=True)
conversation.participants = [sender.key, db.KeyWrapper(cgi_get("recipient"))] conversation.put() m = Message(sender=sender.key, conversation=conversation.key, body=message) m.put() for recipient in conversation.participants: if recipient != sender.key: send_mail(to=recipient.get().email, subject="message from %s"%(sender.firstName,), body=CONTACT%(sender.fullName(), message, sender.firstName, sender.key.urlsafe(), conversation.key.urlsafe())) succeed(convokey and m.key.urlsafe() or conversation.key.urlsafe()) elif action == "edit": changes = cgi_get("changes") changes["key"] = cgi_get("user") edit(changes) elif action == "email": sender = db.get(cgi_get("user")) if not sender.admin: fail() recips = cgi_get("recipients", default=[]) if not recips: if config.wpmail: log("no recipients specified -- WP mode enabled -- building recipient list...") recips = getWPmails() else: fail("no recipients specified -- can't email nobody") batch(recips, lambda chunk : send_mail(bcc=chunk, subject=cgi_get("subject"), body=cgi_get("body")), chunk=100) respond(response)
from importlib import import_module from cantools.util import log from cantools.web import respond, succeed, fail, cgi_get scraper = import_module("scrapers.derby") def download(): opener = urllib.URLopener() opener.retrieve( "http://www.calottery.com/sitecore/content/Miscellaneous/download-numbers/?GameName=daily-derby&Order=No", "scrapers/data/DownloadAllNumbers.txt") log("DownloadAllNumbers.txt downloaded") def parse(): scraper.parse() def scrape(): scraper.scrape() def response(): download() parse() scrape() respond(response, failMsg="scrape failed", noLoad=True)
from cantools.web import respond from model import payDay respond(payDay)
import urllib from importlib import import_module from cantools.util import log from cantools.web import respond, succeed, fail, cgi_get scraper = import_module("scrapers.derby") def download(): opener = urllib.URLopener() opener.retrieve("http://www.calottery.com/sitecore/content/Miscellaneous/download-numbers/?GameName=daily-derby&Order=No", "scrapers/data/DownloadAllNumbers.txt") log("DownloadAllNumbers.txt downloaded") def parse(): scraper.parse() def scrape(): scraper.scrape() def response(): download() parse() scrape() respond(response, failMsg="scrape failed", noLoad=True)
enjoy! """ def response(): log("initiating cronscan", important=True) az = Auction.query( Auction.settled == False, Auction.deadline <= datetime.now() ).all() log("found %s active auctions"%(len(az),)) for a in az: b = Bid.query( Bid.emailed == False, Bid.auction == a.key ).order("-amount").get() if b: u = b.user.get() log("emailing %s"%(u.email,), 1) cw = config.web send_mail( to = u.email, subject = "you won the auction!", body = CSB%("%s://%s:%s/_store?action=claim&bid=%s"%(cw.protocol, cw.host, cw.port, b.key.urlsafe()),) ) b.emailed = True b.put() log("cronscan succeeded -- goodbye!") respond(response, failMsg="cronscan failed")