handlers.py
author Tero Marttila <terom@fixme.fi>
Fri, 13 Feb 2009 00:29:47 +0200
changeset 121 86aebc9cb60b
parent 118 f530c158aa07
child 123 3297596ab606
permissions -rw-r--r--
some quickfixes to fix deployment errors
29
b06ff4c05d42 start prototyping some site-based code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
"""
b06ff4c05d42 start prototyping some site-based code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
    Our URL action handlers
b06ff4c05d42 start prototyping some site-based code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
"""
b06ff4c05d42 start prototyping some site-based code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
54
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
     5
import datetime, calendar, pytz
51
07ca28f3a9f2 use improved URLConfig/URLType
Tero Marttila <terom@fixme.fi>
parents: 50
diff changeset
     6
46
185504387370 reduce to irclogs.qmsk.net site
Tero Marttila <terom@fixme.fi>
parents: 43
diff changeset
     7
from qmsk.web import http, template
40
71ab68f31a1c the handlers work now
Tero Marttila <terom@fixme.fi>
parents: 36
diff changeset
     8
50
f13cf27a360b implement more LogSource features (logs for date, cleanup last_logs), implement irssi parser, formatter, other misc. stuff
Tero Marttila <terom@fixme.fi>
parents: 49
diff changeset
     9
import urls, channels, helpers
53
8103d18907a0 add some user-preferences support (e.g. timezone, time formats)
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    10
import preferences as prefs
8103d18907a0 add some user-preferences support (e.g. timezone, time formats)
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    11
from preferences import preferences
96
d30c88e89a7e move the LogSearchIndex open from handlers to log_search, and make it lazy
Tero Marttila <terom@fixme.fi>
parents: 87
diff changeset
    12
import config, log_search
42
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    13
41
9585441a4bfb working basic logs stuff
Tero Marttila <terom@fixme.fi>
parents: 40
diff changeset
    14
# load templates from here
47
3d59c9eeffaa fix template path
Tero Marttila <terom@fixme.fi>
parents: 46
diff changeset
    15
templates = template.TemplateLoader("templates",
54
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
    16
    _helper_class   = helpers.Helpers,
42
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    17
    urls            = urls,
73
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
    18
    channel_list    = config.LOG_CHANNELS,
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
    19
    config          = config,
42
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    20
)
40
71ab68f31a1c the handlers work now
Tero Marttila <terom@fixme.fi>
parents: 36
diff changeset
    21
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    22
# return a http.Response for the given text in the given format
118
f530c158aa07 implement some basic search-targets for message and nickname
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    23
def _render_type (request, channel, lines, type, full_timestamps=False) :
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    24
    """
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    25
        Render the given LogLines as a http.Response in the given format, which is one of:
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    26
            html    - XXX: not supported
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    27
            txt     - Plaintext
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    28
            png     - PNG image
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    29
            rss     - RSS feed
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    30
    """
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    31
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    32
    # load related preferences
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    33
    formatter = request.prefs['formatter']
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    34
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    35
    # we can render in various modes...
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    36
    if type in ('html', None) :
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    37
        xxx
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    38
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    39
    elif type == 'txt' :
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    40
        # plaintext
118
f530c158aa07 implement some basic search-targets for message and nickname
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    41
        lines = formatter.format_txt(lines, full_timestamps)
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    42
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    43
        # build data
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    44
        data = '\n'.join(data for line, data in lines)
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    45
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    46
        return http.Response(data, 'text/plain')
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    47
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    48
    elif type == 'png' :
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    49
        # PNG image
118
f530c158aa07 implement some basic search-targets for message and nickname
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    50
        png_data = formatter.format_png(lines, full_timestamps)
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    51
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    52
        return http.Response(png_data, 'image/png', charset=None)
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    53
    
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    54
    elif type == 'rss' :
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    55
        # RSS feed
118
f530c158aa07 implement some basic search-targets for message and nickname
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    56
        rss_data = formatter.format_rss(lines, full_timestamps)
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    57
        
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    58
        # XXX: fix to render as unicode?
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    59
        return http.Response(rss_data, 'application/rss+xml', charset=None)
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    60
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    61
    else :
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    62
        raise http.ResponseError("Unrecognized type: %r" % (type, ))
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    63
115
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    64
def _render_date (request, channel, date, lines, type, count, page, max) :
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    65
    """
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    66
        Render the given LogLines as a http.Response for channel_date
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    67
    """
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    68
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    69
    # type?
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    70
    if type :
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    71
        # special type
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    72
        return _render_type(request, channel, lines, type)
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    73
    
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    74
    else :
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    75
        # format HTML
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    76
        lines = request.prefs['formatter'].format_html(lines)
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    77
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    78
        # render
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    79
        return templates.render_to_response("channel_date",
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    80
            req             = request,
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    81
            prefs           = request.prefs,
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    82
            channel         = channel,
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    83
            date            = date,
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    84
            count           = count,
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    85
            page            = page,
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    86
            max             = max,
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    87
            lines           = lines,
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    88
            
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    89
            # for prev/next date
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    90
            date_next       = channel.source.get_next_date(date),
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    91
            date_prev       = channel.source.get_prev_date(date),
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
    92
        )
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
    93
29
b06ff4c05d42 start prototyping some site-based code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    94
def index (request) :
b06ff4c05d42 start prototyping some site-based code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    95
    """
b06ff4c05d42 start prototyping some site-based code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    96
        The topmost index page, display a list of available channels, perhaps some general stats
b06ff4c05d42 start prototyping some site-based code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    97
    """
40
71ab68f31a1c the handlers work now
Tero Marttila <terom@fixme.fi>
parents: 36
diff changeset
    98
    
42
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    99
    return templates.render_to_response("index",
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
   100
        req             = request,
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
   101
    )
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
   102
59
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   103
# XXX: fix this namespace crap
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   104
@preferences.handler()
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   105
def preferences_ (request) :
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   106
    """
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   107
        Preferences editor
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   108
    """
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   109
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   110
    # POST?
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   111
    if request.is_post() :
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   112
        # update any modified preferences
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   113
        for pref in preferences.pref_list :
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   114
            # get+parse new POST'd value
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   115
            # XXX: this doesn't postprocess
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   116
            new_value = pref.parse(request.get_post(pref.name))
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   117
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   118
            # update if changed
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   119
            if new_value != request.prefs[pref] :
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   120
                request.prefs.set(pref.name, new_value)
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   121
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   122
    # render
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   123
    return templates.render_to_response("preferences",
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   124
        req             = request,
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   125
        prefs           = request.prefs,
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   126
        preferences     = prefs,
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   127
        timezones       = pytz.common_timezones,
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   128
    )
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   129
42
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
   130
def channel_select (request, channel) :
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
   131
    """
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
   132
        Redirect to the appropriate channel_view
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
   133
    """
5a72c00c4ae4 more fiddling around with the irclogs layout/css, add query args to URL
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
   134
   
70
72edbbb414a7 merge channel_view and channel_last, adding a More link to channel_last.tmpl
Tero Marttila <terom@fixme.fi>
parents: 66
diff changeset
   135
    return http.Redirect(urls.channel.build(request, channel=channel))
29
b06ff4c05d42 start prototyping some site-based code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   136
59
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   137
@preferences.handler(prefs.formatter)
79
43ac75054d5c image formatting \o/
Tero Marttila <terom@fixme.fi>
parents: 78
diff changeset
   138
def channel_last (request, channel, count, formatter, type=None) :
29
b06ff4c05d42 start prototyping some site-based code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   139
    """
70
72edbbb414a7 merge channel_view and channel_last, adding a More link to channel_last.tmpl
Tero Marttila <terom@fixme.fi>
parents: 66
diff changeset
   140
        The main channel view page, displaying the most recent lines
29
b06ff4c05d42 start prototyping some site-based code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   141
    """
79
43ac75054d5c image formatting \o/
Tero Marttila <terom@fixme.fi>
parents: 78
diff changeset
   142
 
50
f13cf27a360b implement more LogSource features (logs for date, cleanup last_logs), implement irssi parser, formatter, other misc. stuff
Tero Marttila <terom@fixme.fi>
parents: 49
diff changeset
   143
    # get latest events
f13cf27a360b implement more LogSource features (logs for date, cleanup last_logs), implement irssi parser, formatter, other misc. stuff
Tero Marttila <terom@fixme.fi>
parents: 49
diff changeset
   144
    lines = channel.source.get_latest(count)
79
43ac75054d5c image formatting \o/
Tero Marttila <terom@fixme.fi>
parents: 78
diff changeset
   145
   
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   146
    # type?
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   147
    if type :
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   148
        # other format
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   149
        return _render_type(request, channel, lines, type)
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   150
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   151
    else :
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   152
        # format HTML
79
43ac75054d5c image formatting \o/
Tero Marttila <terom@fixme.fi>
parents: 78
diff changeset
   153
        lines = formatter.format_html(lines)
43
fc11c4e86a82 implement channel_view count, the query stuff, css, layout all need some cleanup :(
Tero Marttila <terom@fixme.fi>
parents: 42
diff changeset
   154
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   155
        # render page
79
43ac75054d5c image formatting \o/
Tero Marttila <terom@fixme.fi>
parents: 78
diff changeset
   156
        return templates.render_to_response("channel_last",
43ac75054d5c image formatting \o/
Tero Marttila <terom@fixme.fi>
parents: 78
diff changeset
   157
            req             = request,
43ac75054d5c image formatting \o/
Tero Marttila <terom@fixme.fi>
parents: 78
diff changeset
   158
            prefs           = request.prefs,
43ac75054d5c image formatting \o/
Tero Marttila <terom@fixme.fi>
parents: 78
diff changeset
   159
            channel         = channel,
43ac75054d5c image formatting \o/
Tero Marttila <terom@fixme.fi>
parents: 78
diff changeset
   160
            count           = count,
43ac75054d5c image formatting \o/
Tero Marttila <terom@fixme.fi>
parents: 78
diff changeset
   161
            lines           = lines,
43ac75054d5c image formatting \o/
Tero Marttila <terom@fixme.fi>
parents: 78
diff changeset
   162
        )
40
71ab68f31a1c the handlers work now
Tero Marttila <terom@fixme.fi>
parents: 36
diff changeset
   163
78
85345abbd46a implement pagination for channel_link
Tero Marttila <terom@fixme.fi>
parents: 77
diff changeset
   164
@preferences.handler(prefs.formatter, prefs.timezone, prefs.count)
114
d4848d807fd1 center calendar list, add prev/next date to channel_link, add view-last-x-lines form to channel_last/channel
Tero Marttila <terom@fixme.fi>
parents: 112
diff changeset
   165
def channel_link (request, channel, timestamp, formatter, timezone, count, type=None) :
72
5ade0288f2ec implement line-links as UTC timestamps
Tero Marttila <terom@fixme.fi>
parents: 70
diff changeset
   166
    """
5ade0288f2ec implement line-links as UTC timestamps
Tero Marttila <terom@fixme.fi>
parents: 70
diff changeset
   167
        Display channel_date for specific UTC timestamp
5ade0288f2ec implement line-links as UTC timestamps
Tero Marttila <terom@fixme.fi>
parents: 70
diff changeset
   168
    """
5ade0288f2ec implement line-links as UTC timestamps
Tero Marttila <terom@fixme.fi>
parents: 70
diff changeset
   169
5ade0288f2ec implement line-links as UTC timestamps
Tero Marttila <terom@fixme.fi>
parents: 70
diff changeset
   170
    # convert timestamp to user's timezone
5ade0288f2ec implement line-links as UTC timestamps
Tero Marttila <terom@fixme.fi>
parents: 70
diff changeset
   171
    timestamp = timestamp.astimezone(timezone)
5ade0288f2ec implement line-links as UTC timestamps
Tero Marttila <terom@fixme.fi>
parents: 70
diff changeset
   172
78
85345abbd46a implement pagination for channel_link
Tero Marttila <terom@fixme.fi>
parents: 77
diff changeset
   173
    # get correct day's correct page of lines
85345abbd46a implement pagination for channel_link
Tero Marttila <terom@fixme.fi>
parents: 77
diff changeset
   174
    page, max, lines = channel.source.get_date_paged(timestamp, count)
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   175
    
115
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
   176
    # render channel_date
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
   177
    return _render_date (request, channel, timestamp, lines, type, count, page, max)
72
5ade0288f2ec implement line-links as UTC timestamps
Tero Marttila <terom@fixme.fi>
parents: 70
diff changeset
   178
59
8ec729c5d998 ugly, but working, preferences editor
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
   179
@preferences.handler(prefs.timezone)
54
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   180
def channel_calendar (request, channel, year, month, timezone) :
51
07ca28f3a9f2 use improved URLConfig/URLType
Tero Marttila <terom@fixme.fi>
parents: 50
diff changeset
   181
    """
54
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   182
        Display a list of avilable logs for some month
51
07ca28f3a9f2 use improved URLConfig/URLType
Tero Marttila <terom@fixme.fi>
parents: 50
diff changeset
   183
    """
07ca28f3a9f2 use improved URLConfig/URLType
Tero Marttila <terom@fixme.fi>
parents: 50
diff changeset
   184
54
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   185
    # current date as default
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   186
    now = timezone.localize(datetime.datetime.now())
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   187
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   188
    # target year/month
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   189
    target = timezone.localize(datetime.datetime(
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   190
        year    = year if year else now.year,
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   191
        month   = month if month else now.month,
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   192
        day     = 1
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   193
    ))
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   194
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   195
    # display calendar
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   196
    return templates.render_to_response("channel_calendar",
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   197
        req             = request,
62
e7ca94b94a4e add prefs to render context, and remove old timezone/formatter from it
Tero Marttila <terom@fixme.fi>
parents: 59
diff changeset
   198
        prefs           = request.prefs,
54
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   199
        channel         = channel,
112
090192b64d7e add three calendars to the channel_calendar view
Tero Marttila <terom@fixme.fi>
parents: 111
diff changeset
   200
        month           = target,
54
b65a95eb9f6b implement browse-by-date to show a nice calendar
Tero Marttila <terom@fixme.fi>
parents: 53
diff changeset
   201
    )
51
07ca28f3a9f2 use improved URLConfig/URLType
Tero Marttila <terom@fixme.fi>
parents: 50
diff changeset
   202
117
f0b4097f5781 revert to use %Y-%m-%d for URL dates again
Tero Marttila <terom@fixme.fi>
parents: 116
diff changeset
   203
@preferences.handler(prefs.count, prefs.timezone)
f0b4097f5781 revert to use %Y-%m-%d for URL dates again
Tero Marttila <terom@fixme.fi>
parents: 116
diff changeset
   204
def channel_date (request, channel, date, count, timezone, page=1, type=None) :
50
f13cf27a360b implement more LogSource features (logs for date, cleanup last_logs), implement irssi parser, formatter, other misc. stuff
Tero Marttila <terom@fixme.fi>
parents: 49
diff changeset
   205
    """
f13cf27a360b implement more LogSource features (logs for date, cleanup last_logs), implement irssi parser, formatter, other misc. stuff
Tero Marttila <terom@fixme.fi>
parents: 49
diff changeset
   206
        Display all log data for the given date
f13cf27a360b implement more LogSource features (logs for date, cleanup last_logs), implement irssi parser, formatter, other misc. stuff
Tero Marttila <terom@fixme.fi>
parents: 49
diff changeset
   207
    """
116
81da986f6ed5 fix wrong timezone for channel_date
Tero Marttila <terom@fixme.fi>
parents: 115
diff changeset
   208
    
81da986f6ed5 fix wrong timezone for channel_date
Tero Marttila <terom@fixme.fi>
parents: 115
diff changeset
   209
    # convert date to user's timezone
117
f0b4097f5781 revert to use %Y-%m-%d for URL dates again
Tero Marttila <terom@fixme.fi>
parents: 116
diff changeset
   210
    date = timezone.localize(date)
76
cc3ab2c39ded fix off-by-one with search paginate, and implement basic pagination for channel_date
Tero Marttila <terom@fixme.fi>
parents: 75
diff changeset
   211
115
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
   212
#    print
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
   213
#    print "channel_date: date=%s" % date
50
f13cf27a360b implement more LogSource features (logs for date, cleanup last_logs), implement irssi parser, formatter, other misc. stuff
Tero Marttila <terom@fixme.fi>
parents: 49
diff changeset
   214
78
85345abbd46a implement pagination for channel_link
Tero Marttila <terom@fixme.fi>
parents: 77
diff changeset
   215
    # get that day's events, either paged or not
76
cc3ab2c39ded fix off-by-one with search paginate, and implement basic pagination for channel_date
Tero Marttila <terom@fixme.fi>
parents: 75
diff changeset
   216
    if page :
cc3ab2c39ded fix off-by-one with search paginate, and implement basic pagination for channel_date
Tero Marttila <terom@fixme.fi>
parents: 75
diff changeset
   217
        page, max, lines = channel.source.get_date_paged(date, count, page)
cc3ab2c39ded fix off-by-one with search paginate, and implement basic pagination for channel_date
Tero Marttila <terom@fixme.fi>
parents: 75
diff changeset
   218
        
cc3ab2c39ded fix off-by-one with search paginate, and implement basic pagination for channel_date
Tero Marttila <terom@fixme.fi>
parents: 75
diff changeset
   219
    else :
cc3ab2c39ded fix off-by-one with search paginate, and implement basic pagination for channel_date
Tero Marttila <terom@fixme.fi>
parents: 75
diff changeset
   220
        lines = channel.source.get_date(date)
cc3ab2c39ded fix off-by-one with search paginate, and implement basic pagination for channel_date
Tero Marttila <terom@fixme.fi>
parents: 75
diff changeset
   221
        max = None
50
f13cf27a360b implement more LogSource features (logs for date, cleanup last_logs), implement irssi parser, formatter, other misc. stuff
Tero Marttila <terom@fixme.fi>
parents: 49
diff changeset
   222
115
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
   223
    # render channel_date
751e3fcd11d2 have dates in URLs be partial timestamps - fix datetime-timezone-comparison mess
Tero Marttila <terom@fixme.fi>
parents: 114
diff changeset
   224
    return _render_date (request, channel, date, lines, type, count, page, max)
50
f13cf27a360b implement more LogSource features (logs for date, cleanup last_logs), implement irssi parser, formatter, other misc. stuff
Tero Marttila <terom@fixme.fi>
parents: 49
diff changeset
   225
73
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   226
@preferences.handler(prefs.formatter, prefs.count)
118
f530c158aa07 implement some basic search-targets for message and nickname
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   227
def channel_search (request, channel, formatter, count, q=None, page=1, max=1, type=None, t=None) :
36
02d4040d5946 start working on some nify URL parsing
Tero Marttila <terom@fixme.fi>
parents: 29
diff changeset
   228
    """
75
c5ce145fdd70 fix pagination to just use page numbers... less bugs
Tero Marttila <terom@fixme.fi>
parents: 74
diff changeset
   229
        Display the search form for the channel for GET, or do the search for POST.
36
02d4040d5946 start working on some nify URL parsing
Tero Marttila <terom@fixme.fi>
parents: 29
diff changeset
   230
    """
02d4040d5946 start working on some nify URL parsing
Tero Marttila <terom@fixme.fi>
parents: 29
diff changeset
   231
75
c5ce145fdd70 fix pagination to just use page numbers... less bugs
Tero Marttila <terom@fixme.fi>
parents: 74
diff changeset
   232
    # calculate skip offset from page/count
76
cc3ab2c39ded fix off-by-one with search paginate, and implement basic pagination for channel_date
Tero Marttila <terom@fixme.fi>
parents: 75
diff changeset
   233
    skip = (page - 1) * count
75
c5ce145fdd70 fix pagination to just use page numbers... less bugs
Tero Marttila <terom@fixme.fi>
parents: 74
diff changeset
   234
63
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents: 62
diff changeset
   235
    # got a search query?
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents: 62
diff changeset
   236
    if q :
118
f530c158aa07 implement some basic search-targets for message and nickname
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   237
        # attribute targets
f530c158aa07 implement some basic search-targets for message and nickname
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   238
        targets = dict(('search_%s' % target, True) for target in t if target in ('msg', 'nick')) if t else {}
f530c158aa07 implement some basic search-targets for message and nickname
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   239
74
1ab95857d584 handle the 'no search results' case
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
   240
        try :
1ab95857d584 handle the 'no search results' case
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
   241
            # do search
118
f530c158aa07 implement some basic search-targets for message and nickname
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   242
            lines = log_search.get_index().search_simple(channel, q, count, skip, **targets)
75
c5ce145fdd70 fix pagination to just use page numbers... less bugs
Tero Marttila <terom@fixme.fi>
parents: 74
diff changeset
   243
c5ce145fdd70 fix pagination to just use page numbers... less bugs
Tero Marttila <terom@fixme.fi>
parents: 74
diff changeset
   244
            # update max?
c5ce145fdd70 fix pagination to just use page numbers... less bugs
Tero Marttila <terom@fixme.fi>
parents: 74
diff changeset
   245
            if max and page > max :
c5ce145fdd70 fix pagination to just use page numbers... less bugs
Tero Marttila <terom@fixme.fi>
parents: 74
diff changeset
   246
                max = page
74
1ab95857d584 handle the 'no search results' case
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
   247
        
1ab95857d584 handle the 'no search results' case
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
   248
        except log_search.NoResultsFound :
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   249
            # no results
74
1ab95857d584 handle the 'no search results' case
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
   250
            lines = None
36
02d4040d5946 start working on some nify URL parsing
Tero Marttila <terom@fixme.fi>
parents: 29
diff changeset
   251
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   252
    else :
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   253
        # just display the search form
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   254
        lines = None
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   255
 
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   256
    # type?
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   257
    if type and lines :
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   258
        # special type
118
f530c158aa07 implement some basic search-targets for message and nickname
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   259
        return _render_type(request, channel, lines, type, full_timestamps=True)
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   260
    
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   261
    else :
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   262
        # format lines to HTML if any
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   263
        if lines :
74
1ab95857d584 handle the 'no search results' case
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
   264
            # format
1ab95857d584 handle the 'no search results' case
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
   265
            lines = formatter.format_html(lines, full_timestamps=True)
63
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents: 62
diff changeset
   266
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   267
        # render page
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   268
        return templates.render_to_response("channel_search",
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   269
            req             = request,
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   270
            prefs           = request.prefs,
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   271
            channel         = channel,
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   272
            search_query    = q,
118
f530c158aa07 implement some basic search-targets for message and nickname
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   273
            search_targets  = t,
108
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   274
            count           = count,
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   275
            page            = page,
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   276
            skip            = skip,
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   277
            max             = max,
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   278
            lines           = lines,
d0aca7894fc5 split out helpers._render_type, and add support for ?type= to various other handlers... still needs more work, though
Tero Marttila <terom@fixme.fi>
parents: 96
diff changeset
   279
        )
63
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents: 62
diff changeset
   280