示例#1
0
def plugin_load_wsgi():
    from pytsite import lang, router
    from plugins import settings, auth_ui, auth_google
    from . import _driver, _eh, _settings_form, _controllers

    # Language globals
    lang.register_global(
        'auth_ui_google_admin_settings_url',
        lambda language, args: settings.form_url('auth_google'))

    # Event handlers
    router.on_dispatch(_eh.router_dispatch)

    # Settings
    settings.define('auth_google', _settings_form.Form,
                    'auth_ui_google@auth_google', 'fa fa-google', 'dev')

    try:
        auth_ui.register_driver(_driver.UI(auth_google.get_client_id()))
        router.handle(_controllers.Authorization,
                      '/auth_google/authorization',
                      'auth_ui_google@authorization',
                      filters=auth_ui.AuthFilter)

    except auth_google.error.ClientIdNotDefined:
        pass
示例#2
0
def plugin_load_wsgi():
    from pytsite import cron, events, router
    from plugins import http_api, settings, robots_txt, flag
    from . import _eh, _controllers, _http_api_controllers, _settings_form

    # Events listeners
    cron.hourly(_eh.on_cron_hourly)
    cron.daily(_eh.on_cron_daily)
    on_content_view(_eh.on_content_view)
    events.listen('comments@create_comment', _eh.on_comments_create_comment)
    flag.on_flag_create(_eh.on_flag_toggle)
    flag.on_flag_delete(_eh.on_flag_toggle)

    # Routes
    router.handle(_controllers.Index, 'content/index/<model>', 'content@index')

    # HTTP API endpoints
    http_api.handle('PATCH', 'content/view/<model>/<uid>',
                    _http_api_controllers.PatchViewsCount,
                    'content@patch_view_count')
    http_api.handle('POST', 'content/abuse/<model>/<uid>',
                    _http_api_controllers.PostAbuse, 'content@post_abuse')

    # Settings
    settings.define('content', _settings_form.Form, 'content@content',
                    'fa fa-glass', 'dev')

    # Sitemap location in robots.txt
    robots_txt.sitemap('/sitemap/index.xml')
示例#3
0
def plugin_load_wsgi():
    from pytsite import router, reg
    from plugins import settings
    from . import _settings_form

    settings.define('mail', _settings_form.Form, 'mail_settings@mail',
                    'fa fa-envelope', 'dev')

    if not reg.get('mail.from'):
        reg.put('mail.from', 'info@' + router.server_name())
示例#4
0
def plugin_load_wsgi():
    from pytsite import lang, router
    from plugins import settings
    from . import _eh, _settings_form

    # Resources
    lang.register_global(
        'google_maps_admin_settings_url',
        lambda language, args: settings.form_url('google_maps'))

    # Settings
    settings.define('google_maps', _settings_form.Form,
                    'google_maps_ui@google_maps', 'fa fa-map', 'dev')

    # Event handlers
    router.on_dispatch(_eh.on_router_dispatch)
示例#5
0
def plugin_load_uwsgi():
    from pytsite import plugman
    from plugins import settings, http_api
    from . import _settings_form, _http_api_controllers

    # HTTP API
    http_api.handle('POST', 'plugman/install/<name>', _http_api_controllers.PostInstall,
                    'plugman_ui@post_install')
    http_api.handle('POST', 'plugman/uninstall/<name>', _http_api_controllers.PostUninstall,
                    'plugman_ui@post_uninstall')
    http_api.handle('POST', 'plugman/upgrade/<name>', _http_api_controllers.PostUpgrade,
                    'plugman_ui@post_upgrade')

    if not plugman.is_dev_mode():
        # Settings
        settings.define('plugman', _settings_form.Form, 'plugman_ui@plugins', 'fa fa-plug', 'dev')
示例#6
0
def plugin_load_uwsgi():
    from pytsite import lang, router
    from plugins import settings
    from . import _settings_form, _eh

    # Resources
    lang.register_package(__name__)

    # Lang globals
    lang.register_global('tumblr_admin_settings_url', lambda language, args: settings.form_url('tumblr'))

    # Settings
    settings.define('tumblr', _settings_form.Form, 'tumblr@tumblr', 'fa fa-tumblr', 'dev')

    # Event handlers
    router.on_dispatch(_eh.router_dispatch)
示例#7
0
def plugin_load_uwsgi():
    from pytsite import lang, router
    from plugins import settings
    from . import _eh, _settings_form, _controllers

    # Lang globals
    lang.register_global('facebook_admin_settings_url', lambda language, args: settings.form_url('facebook'))

    # Routes
    router.handle(_controllers.Authorize, '/facebook/authorize', 'facebook@authorize')

    # Settings
    settings.define('facebook', _settings_form.Form, 'facebook@facebook', 'fa fa-facebook', 'dev')

    # Event handlers
    router.on_dispatch(_eh.router_dispatch)
def plugin_load_wsgi():
    from pytsite import lang, router
    from plugins import settings
    from . import _settings_form, _eh

    # Lang globals
    lang.register_global(
        'google_analytics_admin_settings_url',
        lambda language, args: settings.form_url('google_analytics'))

    # Settings
    settings.define('google_analytics', _settings_form.Form,
                    'google_analytics@google_analytics', 'fa fa-line-chart',
                    'dev')

    # Event handlers
    router.on_dispatch(_eh.router_dispatch)
示例#9
0
def plugin_load_wsgi():
    """Hook
    """
    from pytsite import lang, router
    from plugins import settings
    from . import _settings_form, _eh

    # Lang globals
    lang.register_global('addthis_admin_settings_url',
                         lambda language, args: settings.form_url('addthis'))

    # Settings
    settings.define('addthis', _settings_form.Form, 'addthis@addthis',
                    'fa fas fa-plus-square', 'dev')

    # Events
    router.on_dispatch(_eh.router_dispatch)
示例#10
0
def plugin_load_wsgi():
    from pytsite import lang, router
    from plugins import comments, settings
    from . import _eh, _comments, _settings_form

    # Lang globals
    lang.register_global('disqus_admin_settings_url',
                         lambda language, args: settings.form_url('disqus'))

    # Comments driver
    comments.register_driver(_comments.Driver())

    # Settings
    settings.define('disqus', _settings_form.Form, 'disqus@disqus',
                    'fa fa-comments', 'dev')

    # Event handlers
    router.on_dispatch(_eh.router_dispatch)
示例#11
0
def plugin_load_wsgi():
    from pytsite import router
    from plugins import http_api, settings
    from . import _api, _eh, _http_api_controllers, _error, _settings_form

    # Settings
    settings.define('theme', _settings_form.Form, 'theming@appearance',
                    'fa fa-paint-brush')

    # Events handlers
    router.on_dispatch(_eh.on_router_dispatch)

    # HTTP API handlers
    http_api.handle('POST', 'theme', _http_api_controllers.Install,
                    'theming@install')
    http_api.handle('PATCH', 'theme', _http_api_controllers.Switch,
                    'theming@switch')
    http_api.handle('DELETE', 'theme', _http_api_controllers.Uninstall,
                    'theming@uninstall')
示例#12
0
def plugin_load_wsgi():
    from pytsite import router, cron
    from plugins import settings, http_api
    from . import _eh, _model, _settings_form, _controllers, _http_api_controllers

    # Event handlers
    cron.every_min(_eh.on_cron_every_min)

    # Routes
    router.handle(_controllers.Unsubscribe,
                  '/content_digest/unsubscribe/<sid>',
                  'content_digest@unsubscribe')

    # HTTP API handlers
    http_api.handle('POST', 'content_digest/subscribe',
                    _http_api_controllers.PostSubscribe,
                    'content_digest@post_subscribe')

    # Settings
    settings.define('content_digest', _settings_form.Form,
                    'content_digest@content_digest', 'fa fa-rocket')
示例#13
0
def plugin_load_wsgi():
    from pytsite import router
    from plugins import auth_ui, settings, admin, http_api
    from . import _frm, _controllers, _http_api_controllers

    # Settings form
    settings.define('auth', _frm.Settings, 'auth_admin@security', 'fa fa-user', 'dev')

    # BAse path for route rules
    abp = admin.base_path() + '/auth'

    # HTTP API rules
    http_api.handle('GET', abp + '/browse/<e_type>', _http_api_controllers.GetBrowserRows, 'auth_admin@browser_rows')

    # Admin routes
    flt = auth_ui.AuthFilter
    router.handle(_controllers.Browser, abp + '/browse/role', 'auth_admin@browse_roles',
                  {'e_type': 'role'}, filters=flt)
    router.handle(_controllers.Browser, abp + '/browse/user', 'auth_admin@browse_users',
                  {'e_type': 'user'}, filters=flt)
    router.handle(_controllers.ModifyForm, abp + '/modify/role/<uid>', 'auth_admin@form_role_modify',
                  {'e_type': 'role'}, filters=flt)
    router.handle(_controllers.ModifyForm, abp + '/modify/user/<uid>', 'auth_admin@form_user_modify',
                  {'e_type': 'user'}, filters=flt)
    router.handle(_controllers.DeleteForm, abp + '/delete/role', 'auth_admin@form_role_delete',
                  {'e_type': 'role'}, ('GET', 'POST'), flt)
    router.handle(_controllers.DeleteForm, abp + '/delete/user', 'auth_admin@form_user_delete',
                  {'e_type': 'user'}, ('GET', 'POST'), flt)

    # 'Security' admin sidebar section
    admin.sidebar.add_section('security', 'auth_admin@security', 1000)

    # 'Users' admin sidebar menu
    admin.sidebar.add_menu('security', 'users', 'auth_admin@users', router.rule_path('auth_admin@browse_users'),
                           'fa fa-users', weight=10)

    # 'Roles' admin sidebar menu
    admin.sidebar.add_menu('security', 'roles', 'auth_admin@roles', router.rule_path('auth_admin@browse_roles'),
                           'fa fa-key', weight=20, roles='dev')
示例#14
0
def plugin_load_wsgi():
    from plugins import http_api, settings
    from . import _http_api_controllers, _settings_form

    # Settings
    settings.define('comments', _settings_form.Form, 'comments@comments',
                    'fa fas fa-comments', 'dev')

    # HTTP API
    http_api.handle('GET', 'comments/settings',
                    _http_api_controllers.GetSettings, 'comments@get_settings')
    http_api.handle('GET', 'comments/comments/<thread_uid>',
                    _http_api_controllers.GetComments, 'comments@get_comments')
    http_api.handle('POST', 'comments/comment/<thread_uid>',
                    _http_api_controllers.PostComment, 'comments@post_comment')
    http_api.handle('GET', 'comments/comment/<uid>',
                    _http_api_controllers.GetComment, 'comments@get_comment')
    http_api.handle('DELETE', 'comments/comment/<uid>',
                    _http_api_controllers.DeleteComment,
                    'comments@delete_comment')
    http_api.handle('POST', 'comments/report/<uid>',
                    _http_api_controllers.PostReport,
                    'comments@report_comment')