Example #1
0
def reset_search():
    data = request.json
    if not data.get('id'):
        return jsonify(error='missing id')
    Search.update({'_id': ObjectId(data['id'])},
            {'$set': {'session': {}}}, safe=True)
    return jsonify(result=True)
Example #2
0
    def _search_file(self):
        if self.mode == 'ever':
            return
        date = self.session['last_file_search']
        if date and date > datetime.utcnow() - DELTA_FILE_SEARCH:
            return

        media_ = Media.search(**self)
        files = []
        for res in media_:
            files.extend(res.get('files', []))

        if media_ and files:
            if self.mode == 'inc':
                self._add_next('episode')

            src = self.get('src')
            if src:
                Media.update({'_id': {'$in': [m['_id'] for m in media_]}},
                        {'$set': {'src': src}}, safe=True)

            MSearch.remove({'_id': self._id}, safe=True)
            logger.info('removed %s search "%s": found files %s', self.category, self._get_query(), files)
            return True

        MSearch.update({'_id': self._id},
                {'$set': {'session.last_file_search': datetime.utcnow()}},
                safe=True)
Example #3
0
def update_search():
    data = request.json
    if not data.get('_id'):
        return jsonify(error='missing id')
    id = ObjectId(data['_id'])
    if not data.get('name'):
        return jsonify(error='missing name')
    if not data.get('category'):
        return jsonify(error='missing category')
    if not data.get('mode'):
        return jsonify(error='missing mode')

    info = {
        'name': data['name'],
        'category': data['category'],
        'langs': data.get('langs') or [],
        'mode': data['mode'],
        'safe': data.get('safe', True),
        'session': {},
        }
    if data['category'] == 'music':
        info['album'] = data.get('album')
        if not info['album']:
            return jsonify(error='missing album')
    for attr in ('season', 'episode'):
        val = data.get(attr)
        info[attr] = int(val) if val else None
    Search.update({'_id': id}, {'$set': info}, safe=True)

    return jsonify(result=True)
Example #4
0
    def _search_url(self):
        date = self.session['last_url_search']
        if date and date > datetime.utcnow() - DELTA_URL_SEARCH:
            return False

        if self.category not in NETFLIX_CATEGORIES:
            return False
        netflix_ = Settings.get_settings('netflix')
        if not netflix_['username'] or not netflix_['password']:
            return False
        netflix = get_netflix_object(netflix_['username'], netflix_['password'])
        if not netflix:
            return False

        res = netflix.get_info(self.name, self.category)
        if res:
            Media.add_url(url=res['url'], name=res['title'],
                    category=self.category)
            logger.info('found "%s" on netflix (%s)', res['title'], res['url'])
            if self.category == 'movies':
                MSearch.remove({'_id': self._id}, safe=True)
                logger.info('removed %s search "%s": found url %s', self.category, self.name, res['url'])
                return True

        MSearch.update({'_id': self._id},
                {'$set': {'session.last_url_search': datetime.utcnow()}},
                safe=True)
        return False
Example #5
0
def update_search_safe():
    data = request.json
    if not data.get('id'):
        return jsonify(error='missing id')
    id = ObjectId(data['id'])
    safe = data.get('safe')
    if not isinstance(safe, bool):
        return jsonify(error='invalid safe value')
    Search.update({'_id': id}, {'$set': {'safe': safe, 'session': {}}},
            safe=True)
    return jsonify(result=True)