Scraping work

This commit is contained in:
2023-09-29 19:54:03 +01:00
parent 0e0c6694ac
commit 0d97b5fdc0
8 changed files with 61 additions and 5 deletions
+30
View File
@@ -0,0 +1,30 @@
class ScrapePanoptoJob < ApplicationJob
queue_as :default
def perform(*args)
courses = Course.all
courses.each do |course|
self.scrape_course(course)
end
end
# @param [Course] course
def scrape_course(course)
panopto_folder_ids = course.panopto_folders
panopto_folder_ids.each do |folder_id|
lectures_data = Panopto::list_folder folder_id
attributes = lectures_data.map do |lecture_data|
{
title: lecture_data['title'],
start_time: Time.new(lecture_data['start_time']),
recording_id: lecture_data['panopto_delivery_id'],
course_id: course.id,
status: :undetermined
}
end
Lecture.insert_all(attributes, unique_by: :recording_id)
end
end
end