More logging updates.
This commit is contained in:
parent
648d2af560
commit
294ccb77d9
3 changed files with 21 additions and 10 deletions
|
@ -39,7 +39,7 @@ class Channel(Base):
|
||||||
return videos
|
return videos
|
||||||
|
|
||||||
def delete(self, commit=True):
|
def delete(self, commit=True):
|
||||||
self.ycdldb.log.debug('Deleting %s.', self)
|
self.ycdldb.log.info('Deleting %s.', self)
|
||||||
|
|
||||||
self.ycdldb.sql_delete(table='videos', pairs={'author_id': self.id})
|
self.ycdldb.sql_delete(table='videos', pairs={'author_id': self.id})
|
||||||
self.ycdldb.sql_delete(table='channels', pairs={'id': self.id})
|
self.ycdldb.sql_delete(table='channels', pairs={'id': self.id})
|
||||||
|
@ -61,7 +61,7 @@ class Channel(Base):
|
||||||
return self.ycdldb.sql_select_one(query, bindings) is not None
|
return self.ycdldb.sql_select_one(query, bindings) is not None
|
||||||
|
|
||||||
def refresh(self, *, force=False, rss_assisted=True, commit=True):
|
def refresh(self, *, force=False, rss_assisted=True, commit=True):
|
||||||
self.ycdldb.log.debug('Refreshing %s.', self.id)
|
self.ycdldb.log.info('Refreshing %s.', self.id)
|
||||||
|
|
||||||
if not self.uploads_playlist:
|
if not self.uploads_playlist:
|
||||||
self.uploads_playlist = self.ycdldb.youtube.get_user_uploads_playlist_id(self.id)
|
self.uploads_playlist = self.ycdldb.youtube.get_user_uploads_playlist_id(self.id)
|
||||||
|
@ -90,6 +90,11 @@ class Channel(Base):
|
||||||
# Of course, it's possible they were deleted.
|
# Of course, it's possible they were deleted.
|
||||||
known_ids = {v.id for v in self.ycdldb.get_videos(channel_id=self.id)}
|
known_ids = {v.id for v in self.ycdldb.get_videos(channel_id=self.id)}
|
||||||
refresh_ids = list(known_ids.difference(seen_ids))
|
refresh_ids = list(known_ids.difference(seen_ids))
|
||||||
|
if refresh_ids:
|
||||||
|
self.ycdldb.log.debug(
|
||||||
|
'%d ids did not come back from the generator, fetching them separately.',
|
||||||
|
len(refresh_ids),
|
||||||
|
)
|
||||||
for video in self.ycdldb.youtube.get_videos(refresh_ids):
|
for video in self.ycdldb.youtube.get_videos(refresh_ids):
|
||||||
self.ycdldb.insert_video(video, commit=False)
|
self.ycdldb.insert_video(video, commit=False)
|
||||||
|
|
||||||
|
@ -169,7 +174,7 @@ class Video(Base):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def delete(self, commit=True):
|
def delete(self, commit=True):
|
||||||
self.ycdldb.log.debug('Deleting %s.', self)
|
self.ycdldb.log.info('Deleting %s.', self)
|
||||||
|
|
||||||
self.ycdldb.sql_delete(table='videos', pairs={'id': self.id})
|
self.ycdldb.sql_delete(table='videos', pairs={'id': self.id})
|
||||||
|
|
||||||
|
@ -183,7 +188,7 @@ class Video(Base):
|
||||||
if state not in constants.VIDEO_STATES:
|
if state not in constants.VIDEO_STATES:
|
||||||
raise exceptions.InvalidVideoState(state)
|
raise exceptions.InvalidVideoState(state)
|
||||||
|
|
||||||
self.ycdldb.log.debug('Marking %s as %s.', self, state)
|
self.ycdldb.log.info('Marking %s as %s.', self, state)
|
||||||
|
|
||||||
pairs = {
|
pairs = {
|
||||||
'id': self.id,
|
'id': self.id,
|
||||||
|
|
|
@ -205,6 +205,8 @@ class YCDLDBChannelMixin:
|
||||||
return excs
|
return excs
|
||||||
|
|
||||||
def refresh_all_channels(self, *, force=False, rss_assisted=True, skip_failures=False, commit=True):
|
def refresh_all_channels(self, *, force=False, rss_assisted=True, skip_failures=False, commit=True):
|
||||||
|
self.log.info('Refreshing all channels.')
|
||||||
|
|
||||||
if rss_assisted and not force:
|
if rss_assisted and not force:
|
||||||
return self._rss_assisted_refresh(skip_failures=skip_failures, commit=commit)
|
return self._rss_assisted_refresh(skip_failures=skip_failures, commit=commit)
|
||||||
|
|
||||||
|
@ -365,7 +367,7 @@ class YCDLDBVideoMixin:
|
||||||
|
|
||||||
query = 'SELECT * FROM videos' + wheres + orderbys
|
query = 'SELECT * FROM videos' + wheres + orderbys
|
||||||
|
|
||||||
self.log.debug(f'{query} {bindings}')
|
self.log.debug('%s %s', query, bindings)
|
||||||
explain = self.sql_execute('EXPLAIN QUERY PLAN ' + query, bindings)
|
explain = self.sql_execute('EXPLAIN QUERY PLAN ' + query, bindings)
|
||||||
self.log.debug('\n'.join(str(x) for x in explain.fetchall()))
|
self.log.debug('\n'.join(str(x) for x in explain.fetchall()))
|
||||||
|
|
||||||
|
@ -438,8 +440,10 @@ class YCDLDBVideoMixin:
|
||||||
}
|
}
|
||||||
|
|
||||||
if existing:
|
if existing:
|
||||||
|
self.log.loud('Updating Video %s.', video.id)
|
||||||
self.sql_update(table='videos', pairs=data, where_key='id')
|
self.sql_update(table='videos', pairs=data, where_key='id')
|
||||||
else:
|
else:
|
||||||
|
self.log.loud('Inserting Video %s.', video.id)
|
||||||
self.sql_insert(table='videos', data=data)
|
self.sql_insert(table='videos', data=data)
|
||||||
|
|
||||||
video = self.get_cached_instance('video', data)
|
video = self.get_cached_instance('video', data)
|
||||||
|
@ -478,6 +482,7 @@ class YCDLDB(
|
||||||
# LOGGING
|
# LOGGING
|
||||||
self.log = vlogging.getLogger('ycdl:%s' % self.data_directory.absolute_path)
|
self.log = vlogging.getLogger('ycdl:%s' % self.data_directory.absolute_path)
|
||||||
self.log.setLevel(log_level)
|
self.log.setLevel(log_level)
|
||||||
|
self.youtube.log.setLevel(log_level)
|
||||||
|
|
||||||
# DATABASE
|
# DATABASE
|
||||||
self.database_filepath = self.data_directory.with_child(constants.DEFAULT_DBNAME)
|
self.database_filepath = self.data_directory.with_child(constants.DEFAULT_DBNAME)
|
||||||
|
@ -519,7 +524,7 @@ class YCDLDB(
|
||||||
)
|
)
|
||||||
|
|
||||||
def _first_time_setup(self):
|
def _first_time_setup(self):
|
||||||
self.log.debug('Running first-time database setup.')
|
self.log.info('Running first-time database setup.')
|
||||||
self.sql.executescript(constants.DB_INIT)
|
self.sql.executescript(constants.DB_INIT)
|
||||||
self.commit()
|
self.commit()
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import apiclient.discovery
|
import apiclient.discovery
|
||||||
import isodate
|
import isodate
|
||||||
import logging
|
|
||||||
|
from voussoirkit import vlogging
|
||||||
|
|
||||||
from . import helpers
|
from . import helpers
|
||||||
|
|
||||||
|
@ -53,7 +54,7 @@ class Youtube:
|
||||||
serviceName='youtube',
|
serviceName='youtube',
|
||||||
version='v3',
|
version='v3',
|
||||||
)
|
)
|
||||||
self.log = logging.getLogger(__name__)
|
self.log = vlogging.getLogger(__name__)
|
||||||
|
|
||||||
def get_playlist_videos(self, playlist_id):
|
def get_playlist_videos(self, playlist_id):
|
||||||
page_token = None
|
page_token = None
|
||||||
|
@ -70,8 +71,6 @@ class Youtube:
|
||||||
videos = self.get_videos(video_ids)
|
videos = self.get_videos(video_ids)
|
||||||
videos.sort(key=lambda x: x.published, reverse=True)
|
videos.sort(key=lambda x: x.published, reverse=True)
|
||||||
|
|
||||||
self.log.debug('Got %d more videos.', len(videos))
|
|
||||||
|
|
||||||
for video in videos:
|
for video in videos:
|
||||||
yield video
|
yield video
|
||||||
|
|
||||||
|
@ -127,12 +126,14 @@ class Youtube:
|
||||||
chunks = helpers.chunk_sequence(video_ids, 50)
|
chunks = helpers.chunk_sequence(video_ids, 50)
|
||||||
for chunk in chunks:
|
for chunk in chunks:
|
||||||
self.log.debug('Requesting batch of %d video ids.', len(chunk))
|
self.log.debug('Requesting batch of %d video ids.', len(chunk))
|
||||||
|
self.log.loud(chunk)
|
||||||
chunk = ','.join(chunk)
|
chunk = ','.join(chunk)
|
||||||
data = self.youtube.videos().list(
|
data = self.youtube.videos().list(
|
||||||
part='id,contentDetails,snippet,statistics',
|
part='id,contentDetails,snippet,statistics',
|
||||||
id=chunk,
|
id=chunk,
|
||||||
).execute()
|
).execute()
|
||||||
items = data['items']
|
items = data['items']
|
||||||
|
self.log.debug('Got %d snippets.', len(items))
|
||||||
snippets.extend(items)
|
snippets.extend(items)
|
||||||
|
|
||||||
videos = []
|
videos = []
|
||||||
|
|
Loading…
Reference in a new issue