fix: Make set_youtube_statistics reusable and job logic fix
- Make sure job runs only once every hour
- set_youtube_statistics should be usable in and outside class
diff --git a/erpnext/utilities/doctype/video/video.py b/erpnext/utilities/doctype/video/video.py
index 7918b82..f519146 100644
--- a/erpnext/utilities/doctype/video/video.py
+++ b/erpnext/utilities/doctype/video/video.py
@@ -21,7 +21,6 @@
if self.provider == "YouTube" and self.url and not self.get("youtube_video_id"):
self.youtube_video_id = get_id_from_url(self.url)
- @classmethod
def set_youtube_statistics(self, video_ids=None, update=True):
if self.provider == "YouTube" and not is_tracking_enabled():
return
@@ -78,7 +77,8 @@
if frequency == 30:
batch_update_youtube_data()
- elif site_time.hour % frequency == 0:
+ elif site_time.hour % frequency == 0 and site_time.minute < 15:
+ # make sure it runs within the first 15 mins of the hour
batch_update_youtube_data()
@@ -109,8 +109,8 @@
def batch_update_youtube_data():
def prepare_and_set_data(video_list):
video_ids = get_formatted_ids(video_list)
- Video.provider = "YouTube"
- stats = Video.set_youtube_statistics(video_ids=video_ids, update=False)
+ video_doc = frappe.new_doc("Video")
+ stats = video_doc.set_youtube_statistics(video_ids=video_ids, update=False)
set_youtube_data(stats)
def set_youtube_data(entries):