Exemple #1
0
    def GET(self, paste_id):
        try:
            original = Pasted.get(paste_id)
        except:
            web.seeother('/')

        return render.base(render.form(original))
Exemple #2
0
    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))
Exemple #3
0
    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('/')
Exemple #4
0
    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))
Exemple #5
0
    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))
Exemple #6
0
#!/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()
Exemple #7
0
    '/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