reindex comments
This commit is contained in:
parent
b5ceb264ec
commit
a5be5a719b
|
@ -147,7 +147,7 @@ class DownloadPostProcess:
|
||||||
return
|
return
|
||||||
|
|
||||||
for video_id in self.download.videos:
|
for video_id in self.download.videos:
|
||||||
comment = Comments(video_id)
|
comment = Comments(video_id, config=self.download.config)
|
||||||
comment.build_json()
|
comment.build_json()
|
||||||
comment.upload_comments()
|
comment.upload_comments()
|
||||||
|
|
||||||
|
|
|
@ -20,12 +20,17 @@ class Comments:
|
||||||
self.es_path = f"ta_comment/_doc/{youtube_id}"
|
self.es_path = f"ta_comment/_doc/{youtube_id}"
|
||||||
self.json_data = False
|
self.json_data = False
|
||||||
self.config = config
|
self.config = config
|
||||||
|
self.is_activated = False
|
||||||
self.comments_format = False
|
self.comments_format = False
|
||||||
|
|
||||||
def build_json(self):
|
def build_json(self):
|
||||||
"""build json document for es"""
|
"""build json document for es"""
|
||||||
print(f"{self.youtube_id}: get comments")
|
print(f"{self.youtube_id}: get comments")
|
||||||
self._check_config()
|
self._check_config()
|
||||||
|
|
||||||
|
if not self.is_activated:
|
||||||
|
return
|
||||||
|
|
||||||
comments_raw = self.get_yt_comments()
|
comments_raw = self.get_yt_comments()
|
||||||
self.format_comments(comments_raw)
|
self.format_comments(comments_raw)
|
||||||
|
|
||||||
|
@ -40,6 +45,8 @@ class Comments:
|
||||||
if not self.config:
|
if not self.config:
|
||||||
self.config = AppConfig().config
|
self.config = AppConfig().config
|
||||||
|
|
||||||
|
self.is_activated = bool(self.config["downloads"]["comment_max"])
|
||||||
|
|
||||||
def build_yt_obs(self):
|
def build_yt_obs(self):
|
||||||
"""
|
"""
|
||||||
get extractor config
|
get extractor config
|
||||||
|
@ -109,6 +116,9 @@ class Comments:
|
||||||
|
|
||||||
def upload_comments(self):
|
def upload_comments(self):
|
||||||
"""upload comments to es"""
|
"""upload comments to es"""
|
||||||
|
if not self.is_activated:
|
||||||
|
return
|
||||||
|
|
||||||
_, _ = ElasticWrap(self.es_path).put(self.json_data)
|
_, _ = ElasticWrap(self.es_path).put(self.json_data)
|
||||||
|
|
||||||
vid_path = f"ta_video/_update/{self.youtube_id}"
|
vid_path = f"ta_video/_update/{self.youtube_id}"
|
||||||
|
@ -117,7 +127,7 @@ class Comments:
|
||||||
|
|
||||||
def delete_comments(self):
|
def delete_comments(self):
|
||||||
"""delete comments from es"""
|
"""delete comments from es"""
|
||||||
_, _ = ElasticWrap(self.es_path).delete()
|
_, _ = ElasticWrap(self.es_path).delete(refresh=True)
|
||||||
|
|
||||||
def get_es_comments(self):
|
def get_es_comments(self):
|
||||||
"""get comments from ES"""
|
"""get comments from ES"""
|
||||||
|
@ -126,4 +136,19 @@ class Comments:
|
||||||
print(f"comments: not found {self.youtube_id}")
|
print(f"comments: not found {self.youtube_id}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return response
|
return response.get("_source")
|
||||||
|
|
||||||
|
def reindex_comments(self):
|
||||||
|
"""update comments from youtube"""
|
||||||
|
if not self.is_activated:
|
||||||
|
return
|
||||||
|
|
||||||
|
self.build_json()
|
||||||
|
es_comments = self.get_es_comments()
|
||||||
|
|
||||||
|
if not self.comments_format and es_comments["comment_comments"]:
|
||||||
|
# don't overwrite comments in es
|
||||||
|
return
|
||||||
|
|
||||||
|
self.delete_comments()
|
||||||
|
self.upload_comments()
|
||||||
|
|
|
@ -16,6 +16,7 @@ from home.src.download.yt_dlp_base import CookieHandler
|
||||||
from home.src.download.yt_dlp_handler import VideoDownloader
|
from home.src.download.yt_dlp_handler import VideoDownloader
|
||||||
from home.src.es.connect import ElasticWrap
|
from home.src.es.connect import ElasticWrap
|
||||||
from home.src.index.channel import YoutubeChannel
|
from home.src.index.channel import YoutubeChannel
|
||||||
|
from home.src.index.comments import Comments
|
||||||
from home.src.index.playlist import YoutubePlaylist
|
from home.src.index.playlist import YoutubePlaylist
|
||||||
from home.src.index.video import YoutubeVideo
|
from home.src.index.video import YoutubeVideo
|
||||||
from home.src.ta.config import AppConfig
|
from home.src.ta.config import AppConfig
|
||||||
|
@ -147,8 +148,7 @@ class Reindex:
|
||||||
if integrate_ryd:
|
if integrate_ryd:
|
||||||
self._get_unrated_vids()
|
self._get_unrated_vids()
|
||||||
|
|
||||||
@staticmethod
|
def _reindex_single_video(self, youtube_id):
|
||||||
def _reindex_single_video(youtube_id):
|
|
||||||
"""refresh data for single video"""
|
"""refresh data for single video"""
|
||||||
video = YoutubeVideo(youtube_id)
|
video = YoutubeVideo(youtube_id)
|
||||||
|
|
||||||
|
@ -182,6 +182,8 @@ class Reindex:
|
||||||
thumb_handler.delete_video_thumb()
|
thumb_handler.delete_video_thumb()
|
||||||
thumb_handler.download_video_thumb(video.json_data["vid_thumb_url"])
|
thumb_handler.download_video_thumb(video.json_data["vid_thumb_url"])
|
||||||
|
|
||||||
|
Comments(youtube_id, config=self.config).reindex_comments()
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|
Loading…
Reference in New Issue