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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
            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)
Exemple #5
0
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)
Exemple #6
0
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)
Exemple #8
0
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")