def main(parser, options, args): app_globs = app_globals._current_obj() app_id = app_globals.settings['facebook_appid'] if not app_id: print 'No Facebook app_id configured, exiting' sys.exit(3) app_secret = options.app_secret fb = FacebookAPI(app_id, app_secret) from mediadrop.model import DBSession, Media # eager loading of 'meta' to speed up later check. all_media = Media.query.options(joinedload('_meta')).all() print 'Checking all media for existing Facebook comments' progress = ProgressBar(maxval=len(all_media)).start() for i, media in enumerate(all_media): progress.update(i+1) if 'facebook-comment-xid' not in media.meta: continue if not fb.has_xid_comments(media): continue media.meta[u'facebook-comment-xid'] = unicode(media.id) DBSession.add(media) DBSession.commit() progress.finish()
def setup_translator(self): # Load the primary translator on first request and reactivate it for # each subsequent request until the primary language is changed. app_globs = app_globals._current_obj() lang = app_globs.settings['primary_language'] or 'en' if app_globs.primary_language == lang and app_globs.primary_translator: translator = app_globs.primary_translator else: translator = Translator(lang, config['locale_dirs']) app_globs.primary_translator = translator app_globs.primary_language = lang translator.install_pylons_global()
def _post(self, repository): length = int(request.environ.get('CONTENT_LENGTH', -1)) if length > (app_globals.repositories[repository]['patch-max-size'] * 1024 * 1024): abort(413) elif length <= 0: abort(411) else: # read only up to maximum length. If empty, returns an empty string message = request.environ['wsgi.input'].read(length) patch = decodeMessage(message) globals = app_globals._current_obj() return self._patch_generator(globals, repository, patch, length)
def _push(self, repository): # for strange reasons WebOb sets content-length = -1 when POST is urlencoded into a multidict instead of raw length = len(request.body) if length > (app_globals.repositories[repository]['patch-max-size'] * 1024 * 1024): abort(413) elif length <= 0: abort(411) else: message = urllib.unquote_plus(request.body) patch = decodeMessage(message) globals = app_globals._current_obj() return self._patch_generator(globals, repository, patch, length)
def main(parser, options, args): app_globs = app_globals._current_obj() app_id = app_globals.settings['facebook_appid'] if not app_id: print 'No Facebook app_id configured, exiting' sys.exit(3) app_secret = options.app_secret fb = FacebookAPI(app_id, app_secret) from mediacore.model import Media all_media = Media.query.all() print 'Checking all media for existing Facebook comments' progress = ProgressBar(maxval=len(all_media)).start() for i, media in enumerate(all_media): has_comments = fb.has_xid_comments(media) progress.update(i+1) if not has_comments: continue media.meta['facebook-comment-xid'] = str(media.id) progress.finish()