def GET(self, paste_id): try: original = Pasted.get(paste_id) except: web.seeother('/') return render.base(render.form(original))
def GET(self, original, new, raw=None): try: original = Pasted.get(original) new = Pasted.get(new) except: web.seeother('/') return diff = create_udiff(original, new) if raw is not None: web.header('content-type', 'text/plain; charset=utf-8') return diff else: diff = render_udiff(diff) return render.base(render.diff(original, new, diff))
def POST(self): form_input = web.input(_unicode=False) if form_input.code.strip(): check_spam = is_spam(form_input.code) if check_spam is True: web.seeother('/') return hexdigest = calc_md5(form_input.code) try: paste = Pasted.select(Pasted.q.md5==hexdigest).getOne() except: try: form_input.parent except: form_input.parent = None paste = Pasted(code=form_input.code, md5=hexdigest, viewed_at=datetime.datetime.now().strftime('%Y-%m-%d %H:%M'), parent=form_input.parent) web.seeother('/view/'+str(paste.id)) else: web.seeother('/')
def GET(self, paste_id, mode=None): try: paste = Pasted.get(paste_id) paste.viewed_at = datetime.datetime.now().strftime('%Y-%m-%d %H:%M') except: web.seeother('/') return if mode is not None: if mode == '.txt': web.header('content-type', 'text/plain; charset=utf-8') return paste.code elif mode == '.colorful': colorful_code = syntax_highlight(paste) if colorful_code is None: web.seeother('/view/'+str(paste.id)) else: return render.base(render.view(paste,colorful_code)) else: return render.base(render.view(paste))
def GET(self): latest_pastes = Pasted.select(orderBy=Pasted.q.id).reversed() latest_pastes = list(latest_pastes[:10]) return render.base(render.list(latest_pastes))
#!/usr/bin/env python """ This file is part of Pasted source code. Copyright (c) 2008 2009 by Vinicius Figueiredo <*****@*****.**> """ import datetime import logging from pasted.model import Pasted LOG_FILENAME = '/tmp/pasted-delete.log' logging.basicConfig(filename=LOG_FILENAME, level=logging.INFO) seven_days_ago = datetime.datetime.now() - datetime.timedelta(days=7) seven_days_ago = seven_days_ago.strftime("%Y-%m-%d %H:%M") logging.info('Starting maintenance at %s' % datetime.datetime.now().strftime("%Y-%m-%d %H:%M")) list_old = Pasted.select(Pasted.q.viewed_at < seven_days_ago) for paste in list_old: logging.info('Deleting entry %d, last viewed at %s' % (paste.id, paste.viewed_at)) paste.destroySelf()
'/add', 'add', '/view/(\d+)', 'view', '/view/(\d+)(.\w+)', 'view', '/reply/(\d+)', 'add', '/reply/add', 'add', '/diff/(\d+)/(\d+)', 'diff', '/diff/(\d+)/(\d+)/(\w+)', 'diff', '/latest', 'latest', '/about', 'about', '/help', 'help' ) CWD = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) DB = 'db/pasted.db' DB_FULLPATH = os.path.join(CWD, DB) sqlhub.processConnection = connectionForURI('sqlite://%s' % DB_FULLPATH) if not os.path.isfile(DB_FULLPATH): os.mkdir(os.path.join(CWD, 'db')) Pasted.createTable() TEMPLATES = 'templates' TEMPLATES_FULLPATH = os.path.join(CWD, TEMPLATES) render = web.template.render(TEMPLATES_FULLPATH) URLS_LIMIT = 10 URLS_PERCENTAGE = 25