コード例 #1
0
ファイル: controllers.py プロジェクト: NamPNQ/pytaku
def create_or_get_series(url, no_update=False):
    """
    Fetch info and create Series record if not already created.
    Returns Series object.
    """

    # Check if this url is supported
    site = sites.get_site(url)
    if site is None:
        raise PyError({'msg': 'unsupported_url'})

    # Check if series is already in db
    series_record = Series.get_by_url(url)

    # Skip reloading series info if updated recently
    if series_record and (no_update or series_record.is_fresh()):
        return series_record

    # Fetch series info (name, thumburl, chapter list, etc.)
    series_page = site.fetch_manga_seed_page(url)
    series = site.series_info(series_page)

    # Create new series if not in db yet
    if series_record is None:
        series_record = Series.create(url,
                                      site.netlocs[0],
                                      series['name'],
                                      series['thumb_url'],
                                      series['chapters'],
                                      series['status'],
                                      series['tags'],
                                      series['description'],
                                      series['authors'])
    else:
        # Update existing Series db record
        fields = ('site', 'name', 'thumb_url', 'chapters', 'status', 'tags',
                  'description', 'authors')
        params = {field: series[field] for field in fields}
        update_series(series_record, **params)

    return series_record
コード例 #2
0
ファイル: controllers.py プロジェクト: kgov1/pytaku
def create_or_get_series(url, no_update=False):
    """
    Fetch info and create Series record if not already created.
    Returns Series object.
    """

    # Check if this url is supported
    site = sites.get_site(url)
    if site is None:
        raise PyError({'msg': 'unsupported_url'})

    # Check if series is already in db
    series_record = Series.get_by_url(url)

    # Skip reloading series info if updated recently
    if series_record and (no_update or series_record.is_fresh()):
        return series_record

    # Fetch series info (name, thumburl, chapter list, etc.)
    series_page = site.fetch_manga_seed_page(url)
    series = site.series_info(series_page)

    # Create new series if not in db yet
    if series_record is None:
        series_record = Series.create(url,
                                      site.netlocs[0],
                                      series['name'],
                                      series['thumb_url'],
                                      series['chapters'],
                                      series['status'],
                                      series['tags'],
                                      series['description'],
                                      series['authors'])
    else:
        # Update existing Series db record
        fields = ('site', 'name', 'thumb_url', 'chapters', 'status', 'tags',
                  'description', 'authors')
        params = {field: series[field] for field in fields}
        update_series(series_record, **params)

    return series_record
コード例 #3
0
ファイル: api.py プロジェクト: PythonPaper/pytaku
    def post(self):
        "Add or remove series from provided URL to bookmark list"

        if self.data['action'] not in ('add', 'remove'):
            raise PyError({'msg': 'invalid_action'})

        series = Series.get_by_url(self.data['url'])
        if series is None:
            raise PyError({'msg': 'series_not_created'})

        if self.data['action'] == 'add':
            if not self.user.bookmark_series(series):
                raise PyError({'msg': 'series_already_bookmarked'})
            return {}

        else:
            if not self.user.unbookmark_series(series):
                raise PyError({'msg': 'series_not_bookmarked'})
            return {}
コード例 #4
0
ファイル: api.py プロジェクト: kgov1/pytaku
    def post(self):
        "Add or remove series from provided URL to bookmark list"

        if self.data['action'] not in ('add', 'remove'):
            raise PyError({'msg': 'invalid_action'})

        series = Series.get_by_url(self.data['url'])
        if series is None:
            raise PyError({'msg': 'series_not_created'})

        if self.data['action'] == 'add':
            if not self.user.bookmark_series(series):
                raise PyError({'msg': 'series_already_bookmarked'})
            return {}

        else:
            if not self.user.unbookmark_series(series):
                raise PyError({'msg': 'series_not_bookmarked'})
            return {}