🔖 Initial commit of trakt scraper
This commit is contained in:
		
					parent
					
						
							
								e5792a424e
							
						
					
				
			
			
				commit
				
					
						5bb57a9e8a
					
				
			
		
					 1 changed files with 72 additions and 0 deletions
				
			
		
							
								
								
									
										72
									
								
								trakt.scraper.user.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								trakt.scraper.user.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,72 @@ | ||||||
|  | // ==UserScript==
 | ||||||
|  | // @name         Trakt Scraper
 | ||||||
|  | // @namespace    danielrayjones
 | ||||||
|  | // @version      0.0.1
 | ||||||
|  | // @description  Scrape lists of shows/movies from Trakt and download a JSON file
 | ||||||
|  | // @author       Dan Jones
 | ||||||
|  | // @match        https://trakt.tv/*
 | ||||||
|  | // @grant        none
 | ||||||
|  | // @require https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
 | ||||||
|  | // ==/UserScript==
 | ||||||
|  | 
 | ||||||
|  | (function() { | ||||||
|  |     'use strict'; | ||||||
|  | 
 | ||||||
|  |     let watched_shows = JSON.parse(localStorage.watched_shows); | ||||||
|  |     let watched_movies = JSON.parse(localStorage.watched_movies); | ||||||
|  | 
 | ||||||
|  |     function processEpisode(that) { | ||||||
|  |         let $ep = $(that); | ||||||
|  |         let $series = $ep.find('[itemtype="http://schema.org/TVSeries"]'); | ||||||
|  | 
 | ||||||
|  |         let series = $ep.data('show-id'); | ||||||
|  |         let ep = $ep.data('episode-id'); | ||||||
|  |         //let url = $ep.data('url');
 | ||||||
|  |         let url = $ep.children('[itemprop="url"]').attr('content'); | ||||||
|  | 
 | ||||||
|  |         let series_title = $series.children('[itemprop="name"]').attr('content'); | ||||||
|  |         let ep_title = $ep.children('[itemprop="name"]').attr('content'); | ||||||
|  |         let ep_number = $ep.children('[itemprop="episodeNumber"]').attr('content'); | ||||||
|  |         let season_number = $ep.data('season-number'); | ||||||
|  |         //let title = $ep.data('title');
 | ||||||
|  |         let title = series_title + " " + season_number + "x" + ep_number + ' "' + ep_title + '"'; | ||||||
|  | 
 | ||||||
|  |         let watched = watched_shows[series].e[ep]; | ||||||
|  | 
 | ||||||
|  |         let this_ep = { title, url, watches: watched ? watched[1] : 0, last_watched: watched ? watched[0] : null}; | ||||||
|  | 
 | ||||||
|  |         return this_ep; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     function processMovie(that) { | ||||||
|  |         let $mov = $(that); | ||||||
|  |         let id = $mov.data('movie-id'); | ||||||
|  | 
 | ||||||
|  |         let title = $mov.children('[itemprop="name"]').attr('content'); | ||||||
|  |         let url = $mov.children('[itemprop="url"]').attr('content'); | ||||||
|  |         let watched = watched_movies[id]; | ||||||
|  | 
 | ||||||
|  |         let this_mov = { title, url, watches: watched ? watched[1] : 0, last_watched: watched ? watched[0] : null}; | ||||||
|  | 
 | ||||||
|  |         return this_mov; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     let items = $('[itemtype="http://schema.org/TVEpisode"], [itemtype="http://schema.org/Movie"]').map(function() { | ||||||
|  |         let type = $(this).attr('itemtype').replace(/^https?:\/\/schema.org\//, ''); | ||||||
|  | 
 | ||||||
|  |         let data = {}; | ||||||
|  |         switch(type) { | ||||||
|  |             case "TVEpisode": | ||||||
|  |                 data = processEpisode(this); | ||||||
|  |                 break; | ||||||
|  |             case "Movie": | ||||||
|  |                 data = processMovie(this); | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |         data.type = type; | ||||||
|  | 
 | ||||||
|  |         return data; | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     console.log(items); | ||||||
|  | })(); | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue