示例#1
0
async def fetch(client, url, name, is_web):
    with async_timeout.timeout(15):
        try:
            headers = {'user-agent': get_random_user_agent()}
            if is_web:
                params = {
                    'wd': name,
                    'ie': 'utf-8',
                    'rn': BAIDU_RN,
                    'vf_bl': 1
                }
            else:
                params = {'word': name}
            async with client.get(url, params=params,
                                  headers=headers) as response:
                assert response.status == 200
                LOGGER.info('Task url: {}'.format(response.url))
                try:
                    text = await response.text()
                except:
                    text = await response.read()
                return text
        except Exception as e:
            LOGGER.exception(e)
            return None
示例#2
0
async def owllook_delete_book(request):
    """

    :param request:
    :return:
        :   -1  用户session失效  需要重新登录
        :   0   删除书架失败
        :   1   删除书架成功
    """
    user = request['session'].get('user', None)
    data = parse_qs(str(request.body, encoding='utf-8'))
    if user:
        if data.get('book_url', None):
            book_url = data.get('book_url', None)[0]
        else:
            novels_name = data.get('novels_name', '')
            chapter_url = data.get('chapter_url', '')
            book_url = "/chapter?url={chapter_url}&novels_name={novels_name}".format(
                chapter_url=chapter_url[0], novels_name=novels_name[0])
        try:
            motor_db = MotorBase().db
            await motor_db.user_message.update_one(
                {'user': user},
                {'$pull': {
                    'books_url': {
                        "book_url": unquote(book_url)
                    }
                }})
            LOGGER.info('删除书架成功')
            return json({'status': 1})
        except Exception as e:
            LOGGER.exception(e)
            return json({'status': 0})
    else:
        return json({'status': -1})
示例#3
0
async def owllook_delete_bookmark(request):
    """

    :param request:
    :return:
        :   -1  用户session失效  需要重新登录
        :   0   删除书签失败
        :   1   删除书签成功
    """
    user = request['session'].get('user', None)
    data = parse_qs(str(request.body, encoding='utf-8'))
    bookmarkurl = data.get('bookmarkurl', '')
    if user and bookmarkurl:
        bookmark = unquote(bookmarkurl[0])
        try:
            motor_db = MotorBase().db
            await motor_db.user_message.update_one(
                {'user': user},
                {'$pull': {
                    'bookmarks': {
                        "bookmark": bookmark
                    }
                }})
            LOGGER.info('删除书签成功')
            return json({'status': 1})
        except Exception as e:
            LOGGER.exception(e)
            return json({'status': 0})
    else:
        return json({'status': -1})
示例#4
0
async def owllook_delete_book(request):
    """

    :param request:
    :return:
        :   -1  用户session失效  需要重新登录
        :   0   删除书架失败
        :   1   删除书架成功
    """
    user = request['session'].get('user', None)
    if user:
        novels_name = request.args.get('novels_name', '')
        chapter_url = request.args.get('chapter_url', '')
        url = "/chapter?url={chapter_url}&novels_name={novels_name}".format(
            chapter_url=chapter_url, novels_name=novels_name)
        try:
            motor_db = MotorBase().db
            motor_db.user_message.update_one(
                {'user': user}, {'$pull': {
                    'books_url': {
                        "book_url": url
                    }
                }})
            LOGGER.info('删除书架成功')
            return json({'status': 1})
        except Exception as e:
            LOGGER.exception(e)
            return json({'status': 0})
    else:
        return json({'status': -1})
示例#5
0
async def owllook_delete_bookmark(request):
    """

    :param request:
    :return:
        :   -1  用户session失效  需要重新登录
        :   0   删除书签失败
        :   1   删除书签成功
    """
    user = request['session'].get('user', None)
    if user:
        bookmarkurl = request.args.get('bookmarkurl', '')
        name = request.args.get('name', '')
        chapter_url = request.args.get('chapter_url', '')
        novels_name = request.args.get('novels_name', '')
        url = bookmarkurl + "&name=" + name + "&chapter_url=" + chapter_url + "&novels_name=" + novels_name
        try:
            motor_db = MotorBase().db
            motor_db.user_message.update_one(
                {'user': user}, {'$pull': {
                    'bookmarks': {
                        "bookmark": url
                    }
                }})
            LOGGER.info('删除书签成功')
            return json({'status': 1})
        except Exception as e:
            LOGGER.exception(e)
            return json({'status': 0})
    else:
        return json({'status': -1})
示例#6
0
async def fetch(client, url):
    with async_timeout.timeout(10):
        try:
            headers = {'user-agent': get_random_user_agent()}
            async with client.get(url, headers=headers) as response:
                assert response.status == 200
                LOGGER.info('Task url: {}'.format(response.url))
                text = await response.text()
                return text
        except Exception as e:
            LOGGER.exception(e)
            return None
示例#7
0
async def owllook_add_book(request):
    """

    :param request:
    :return:
        :   -1  用户session失效  需要重新登录
        :   0   添加书架失败
        :   1   添加书架成功
    """
    user = request['session'].get('user', None)
    data = parse_qs(str(request.body, encoding='utf-8'))
    novels_name = data.get('novels_name', '')
    chapter_url = data.get('chapter_url', '')
    last_read_url = data.get('last_read_url', '')
    if user and novels_name and chapter_url:
        url = "/chapter?url={chapter_url}&novels_name={novels_name}".format(
            chapter_url=chapter_url[0], novels_name=novels_name[0])
        time = get_time()
        try:
            motor_db = MotorBase().db
            res = await motor_db.user_message.update_one(
                {'user': user}, {'$set': {
                    'last_update_time': time
                }},
                upsert=True)
            if res:
                await motor_db.user_message.update_one(
                    {
                        'user': user,
                        'books_url.book_url': {
                            '$ne': url
                        }
                    }, {
                        '$push': {
                            'books_url': {
                                'book_url': url,
                                'add_time': time,
                                'last_read_url': unquote(last_read_url[0])
                            }
                        }
                    })
                LOGGER.info('书架添加成功')
                return json({'status': 1})
        except Exception as e:
            LOGGER.exception(e)
            return json({'status': 0})
    else:
        return json({'status': -1})
示例#8
0
async def fetch(client, url, novels_name):
    with async_timeout.timeout(15):
        try:
            headers = {'user-agent': get_random_user_agent()}
            params = {'q': novels_name, 'ie': 'utf-8'}
            async with client.get(url, params=params, headers=headers) as response:
                assert response.status == 200
                LOGGER.info('Task url: {}'.format(response.url))
                try:
                    text = await response.text()
                except:
                    text = await response.read()
                return text
        except Exception as e:
            LOGGER.exception(e)
            return None
示例#9
0
def init_cache(sanic, loop):
    LOGGER.info("Starting aiocache")
    aiocache.settings.set_defaults(
        class_="aiocache.RedisCache",
        endpoint=REDIS_DICT.get('REDIS_ENDPOINT', None),
        port=REDIS_DICT.get('REDIS_PORT', None),
        db=REDIS_DICT.get('CACHE_DB', None),
        password=REDIS_DICT.get('PASSWORD', None),
        loop=loop,
    )
    LOGGER.info("Starting redis pool")
    redis = RedisSession()
    # redis instance for app
    app.get_redis_pool = redis.get_redis_pool
    # pass the getter method for the connection pool into the session
    app.session_interface = RedisSessionInterface(app.get_redis_pool, expiry=86400)
示例#10
0
async def owllook_add_bookmark(request):
    """

    :param request:
    :return:
        :   -1  用户session失效  需要重新登录
        :   0   添加书签失败
        :   1   添加书签成功
    """
    user = request['session'].get('user', None)
    if user:
        bookmarkurl = request.args.get('bookmarkurl', '')
        name = request.args.get('name', '')
        chapter_url = request.args.get('chapter_url', '')
        novels_name = request.args.get('novels_name', '')
        url = bookmarkurl + "&name=" + name + "&chapter_url=" + chapter_url + "&novels_name=" + novels_name
        time = get_time()
        try:
            motor_db = MotorBase().db
            res = motor_db.user_message.update_one(
                {'user': user}, {'$set': {
                    'last_update_time': time
                }},
                upsert=True)
            if res:
                motor_db.user_message.update_one(
                    {
                        'user': user,
                        'bookmarks.bookmark': {
                            '$ne': url
                        }
                    }, {
                        '$push': {
                            'bookmarks': {
                                'bookmark': url,
                                'add_time': time
                            }
                        }
                    })
                LOGGER.info('书签添加成功')
                return json({'status': 1})
        except Exception as e:
            LOGGER.exception(e)
            return json({'status': 0})
    else:
        return json({'status': -1})
示例#11
0
async def owllook_add_book(request):
    """

    :param request:
    :return:
        :   -1  用户session失效  需要重新登录
        :   0   添加书架失败
        :   1   添加书架成功
    """
    user = request['session'].get('user', None)
    if user:
        novels_name = request.args.get('novels_name', '')
        chapter_url = request.args.get('chapter_url', '')
        url = "/chapter?url={chapter_url}&novels_name={novels_name}".format(
            chapter_url=chapter_url, novels_name=novels_name)
        time = get_time()
        try:
            motor_db = MotorBase().db
            res = motor_db.user_message.update_one(
                {'user': user}, {'$set': {
                    'last_update_time': time
                }},
                upsert=True)
            if res:
                motor_db.user_message.update_one(
                    {
                        'user': user,
                        'books_url.book_url': {
                            '$ne': url
                        }
                    }, {
                        '$push': {
                            'books_url': {
                                'book_url': url,
                                'add_time': time
                            }
                        }
                    })
                LOGGER.info('书架添加成功')
                return json({'status': 1})
        except Exception as e:
            LOGGER.exception(e)
            return json({'status': 0})
    else:
        return json({'status': -1})
示例#12
0
async def owllook_add_bookmark(request):
    """

    :param request:
    :return:
        :   -1  用户session失效  需要重新登录
        :   0   添加书签失败
        :   1   添加书签成功
    """
    user = request['session'].get('user', None)
    data = parse_qs(str(request.body, encoding='utf-8'))
    bookmarkurl = data.get('bookmarkurl', '')
    if user and bookmarkurl:
        url = unquote(bookmarkurl[0])
        time = get_time()
        try:
            motor_db = MotorBase().db
            res = await motor_db.user_message.update_one(
                {'user': user}, {'$set': {
                    'last_update_time': time
                }},
                upsert=True)
            if res:
                await motor_db.user_message.update_one(
                    {
                        'user': user,
                        'bookmarks.bookmark': {
                            '$ne': url
                        }
                    }, {
                        '$push': {
                            'bookmarks': {
                                'bookmark': url,
                                'add_time': time
                            }
                        }
                    })
                LOGGER.info('书签添加成功')
                return json({'status': 1})
        except Exception as e:
            LOGGER.exception(e)
            return json({'status': 0})
    else:
        return json({'status': -1})
示例#13
0
async def get_real_url(client, url):
    with async_timeout.timeout(10):
        try:
            headers = {'user-agent': get_random_user_agent()}
            async with client.get(url, headers=headers, allow_redirects=True) as response:
                assert response.status == 200
                LOGGER.info('Parse url: {}'.format(response.url))
                # text = ""
                # try:
                #     text = await response.text()
                # except:
                #     text = await response.read()
                # if text:
                #     print(text)
                #     text = re.findall(r'replace\(\"(.*?)\"\)', str(text))
                #     text = text[0] if text[0] else ""
                url = response.url if response.url else None
                return url
        except Exception as e:
            LOGGER.exception(e)
            return None
示例#14
0
async def target_fetch(client, url):
    """

    :param client: aiohttp client
    :param url: targer url
    :return: text
    """
    with async_timeout.timeout(20):
        try:
            headers = {'user-agent': get_random_user_agent()}
            async with client.get(url, headers=headers) as response:
                assert response.status == 200
                LOGGER.info('Task url: {}'.format(response.url))
                try:
                    text = await response.text()
                except:
                    text = await response.read()
                return text
        except Exception as e:
            LOGGER.exception(e)
            return None