• Höfundur: isamert
  • Merki: emacs, org, cli
  • Birt 2021-05-09
  • Síðast uppfært 2021-05-09

Efnisyfirlit

  • Formáli
  • Flytja út gögn frá IMDb
  • Að flokka gögnin
  • Að búa til einkunnalistann fyrir skipulagsham
  • Viðauki: Að sækja gögn um landið fyrir kvikmyndina

Formáli

Ég hef notað org-ham til að fylgjast með einkunnum og gagnrýni kvikmynda. Org-mode, ásamt org-ql, gefur mér töluvert mikinn sveigjanleika. Ég er líka að nota Zettelkasten-eins backlinking og tilvísanir, svo að halda þessum einkunnaupplýsingum á org-ham er skynsamlegt fyrir mig. Fyrst skal ég sýna þér hvernig það lítur út:
org_imdb_structre.png
Og svona lítur kvikmynd með eiginleikum sínum út:
org_imdb_expanded.png
Ég sjálfvirkaði aðallega nauðsynlega upplýsingaöflun með því að nota orgmdb.el, pakka sem ég skrifaði. Hlekkurinn inniheldur tengdar upplýsingar til að fylla út þessi gögn sjálfkrafa. Áður en allt þetta notaði ég IMDb til að skrá einkunnir mínar eingöngu. Svo ég vildi bara flytja þessar einkunnir inn í nýja skipulags-ham byggða áhorfs/einkunnalistann minn.

Flytja út gögn frá IMDb

Skráðu þig inn á IMDb og opnaðu þennan tengil. Smelltu á 3 punkta táknið efst til hægri og smelltu á Export.
org_imdb_export.png
Þetta mun gefa þér skrá sem heitir ratings.csv.

Að flokka gögnin

Ég leitaði bara að elisp csvog notaði fyrsta pakkann sem rakst á. Ég vildi ekki skipta línum með «,» vegna þess að það eru einhverjir tilvitnaðir textar í csv og sem gætu innihaldið kommur sjálfar. Það er bara betra að nota bókasafn sem sér um þessi mál.

(notaðu-pakka parse-csv
: tryggja t)

Með eftirfarandi getum við flokkað gögnin í '((movie1 properties ...) (movie2 properties ...)):

(setkv
mín-kvikmyndagögn
(þátta-csv-streng-raðir
(með-temp-buffer
(insert-file-contents "~/Downloads/ratings.csv")
(buffer-strengur))
?\, ?\" "\n"))

Að búa til einkunnalistann fyrir skipulagsham

Mér finnst gaman að nota dash.el virkni fyrir svona einstök forskrift, það er mjög þægilegt og auðvelt að skrifa. Með eftirfarandi getum við umbreytt gögnunum í ratings.csvokkar sérsniðnu skipulagssniði.

(->> kvikmyndagögnin mín
;; Slepptu CSV hausnum
(-fall 1)
;; Slepptu tómum línum o.s.frv.
(--sía (cdr það))
;; Forsníða allar kvikmyndir í það snið sem ég nota á vaktlistanum mínum
(--kort (snið
"** LOKIÐ %s (%s) :%s:\n:EIGNIR:\n:TÍÐ: %s\n:KUNSTÍMI: %s\n:LEIKSTJÓRI: %s\n:EINKENNUN: %s\n: SORÐI: %s\n:IMDB-auðkenni: %s\n:END:"
(n. 3 það)
(n. 8 það)
(n. 5 það)
(n. 9. það)
(sniðið "%s mín" (n. 7. það))
(n. 12 það)
(n. 1 það)
(sniðið "[%s]" (n. 2. það))
(n. 0 það)))
;; Minnka allt í einn streng
(--minnka (snið "%s\n%s" samkvæmt því))
;; Afritaðu strenginn
(drepa-nýtt))

Þetta mun forsníða allar kvikmyndir í sniðið sem ég sýndi þér hér að ofan og afrita strenginn sem myndast á klemmuspjaldið þitt, svo þú getir límt það inn í vaktlistaskrána þína. Ekki hika við að breyta sniðinu eins og þú vilt.

Viðauki: Að sækja gögn um landið fyrir kvikmyndina

Ég var ekki sáttur við ofangreinda niðurstöðu, vegna þess að mér finnst líka gaman að hafa :COUNTRY:reit í eignalista kvikmynda svo ég geti síað eftir landi o.s.frv. Þar sem ratings.csvþessar upplýsingar eru ekki til staðar varð ég að nota orgmdbpakkann sem ég nefndi áðan.
Fyrst þurfti ég að forsníða gögnin í ratings.csveitthvað á þessa leið:

(setkv
isamert/kvikmyndamatslisti
'(("tt1010048" . (7 2016-08-30))
("tt0101540" . (6 2017-03-13))
("tt1019452" . (8 2019-11-29))
...))

…að nota þessa skipun og gera svo smá handavinnu:

cat ratings.csv | awk -F, '{prenta "(\"" $1 "\" . (" $2, "\""$3 "\"))"}'

Þar sem ég þarf aðeins einkunnina sem ég gaf myndinni og dagsetninguna sem ég gaf henni úr skránni, fæ ég restina með því að nota orgmdb:

(setq isamert/kvikmyndir
(--kort
(orgmdb :imdb (tákn-nafn (bíll það)))
isamert/kvikmyndamatslisti))

Þetta getur tekið nokkrar mínútur eftir því hversu mikið af kvikmyndum þú ert með á listanum þínum. Ég þurfti að bíða í nokkrar mínútur eftir ~500 kvikmyndum. Nú þegar við höfum allar upplýsingar sem við þurfum, getum við búið til sérsniðna einkunnalistann okkar:

(->> isamert/kvikmyndir
(--kort (láta* ((upplýsingar (cdr (assoc-string (alist-get 'imdbID það)) isamert/movie-rating-list))))
`(,@it (MyRating . ,(bílaupplýsingar)) (MyRatingDate . ,(cdr info)))))
(--kort (snið "** LOKIÐ %s (%s) :%s:\n:EIGNIR:\n:TEGN: %s\n:KUNSTÍMI: %s\n:LEIKSTJÓRI: %s\n:LAND : %s\n:EINKIN: %s\n:SORÐI: %s\n:IMDB-auðkenni: %s\n:END:"
(alist-fáðu 'Titla það)
(alist-fáðu 'Year it)
(alist-fá 'Sláðu það inn)
(alist-fáðu 'Genre it)
(alist-fáðu 'Runtime it)
(alist-get 'Director it)
(alist-fáðu 'Country it)
(alist-fá 'MyRating it)
(sniðið "[%s]" (alist-get 'MyRatingDate it))
(alist-fáðu 'imdbID það)))
(--minnka (snið "%s\n%s" samkvæmt því))
(drepa-nýtt))

Fínt.
Bókamerktu permalinkinn.

xbgmsharp/trakt
Flytja inn kvikmyndir eða TVShows auðkenni frá CSV skráarsniði í Trakt.tv.
Flyttu út kvikmyndir eða TVShows auðkenni af Trakt.tv listanum í CSV skráarsnið.
Búðu til sérsniðna trakt.tv lista frá TDMB Discover með síu.
https://github.com/xbgmsharp/trakt
damienhaynes/TraktRater
TraktRater er tól skrifað í C# til að hjálpa notendum að flytja einkunnir notendaþátta, þátta og kvikmynda frá mörgum gagnagrunnssíðum vefsins yfir á vinsæla samfélagsmiðlasíðuna trakt.tv.
https://github.com/damienhaynes/TraktRater
Trakt.tv öryggisafrit

Nýlega flutti ég kvikmyndasafnið mitt yfir á Trakt.TV. Ég er mjög varkár með gögnin mín og ég vil ekki missa þau ef þjónustan verður einhvern tíma hætt. Svo ég skrifaði smá handrit sem flytur út: Bókasafnið, Vaktlistann og Einkunnir.

https://darekkay.com/2014/08/12/trakt-tv-backup/

<?php
/*
Afritunarforskrift fyrir trakt.tv (API v2).
Sýning í beinni: https://darekkay.com/blog/trakt-tv-backup/
*/
// búðu til Trakt app til að fá forritaskil viðskiptavinar: http://docs.trakt.apiary.io/#introduction/create-an-app
$apikey = «CLIENT_API_KEY»;
$notandanafn = «YOUR_USERNAME»;
$zip = nýtt ZipArchive();
$zip_filename = «trakt_backup_» . dagsetning («Ymd») . «.zip»;
$zip_filepath = «/tmp/trakt_backup_» . dagsetning («Ymd») . «.zip»;
if ($zip->open($zip_filepath, ZIPARCHIVE::CREATE) !== TRUE) {
exit(«Get ekki opnað <$zip_filepath>\n»);
}
loadAndZip(«vaktlisti/kvikmyndir/», «vaktlisti_kvikmyndir.txt»);
loadAndZip(«vaktlisti/þættir/», «vaktlisti_sýningar.txt»);
loadAndZip(«vaktlisti/þættir/», «vaktlisti_þættir.txt»);
loadAndZip(«vaktlisti/árstíðir/», «vaktlisti_árstíðir.txt»);
loadAndZip(«rating/movies/», «ratings_movies.txt»);
loadAndZip(«einkunnir/sýningar/», «einkunnir_sýningar.txt»);
loadAndZip(«einkunnir/þættir/», «einkunnir_þættir.txt»);
loadAndZip(«einkunnir/árstíðir/», «einkunnir_árstíðir.txt»);
loadAndZip(«safn/kvikmyndir/», «safn_safn_bíó.txt»);
loadAndZip(«safn/sýningar/», «safnsafn_sýningar.txt»);
loadAndZip(«horfði/kvikmyndir/», «horfði_kvikmyndir.txt»);
loadAndZip(«horfði/þættir/», «horfði_þættir.txt»);
loadAndZip(«saga/kvikmyndir/», «saga_kvikmyndir.txt»);
loadAndZip(«saga/sýningar/», «saga_sýningar.txt»);
$zip->loka();
haus («Efnisgerð: forrit/zip»);
haus («Content-Disposition: attachment; filename=$zip_filename»);
header(«Pragma: enginn skyndiminni»);
header(«Rennur út: 0»);
lesskrá ($zip_skráarslóð);
hætta();
virka loadAndZip($path, $filename)
{
global$zip, $apikey, $notendanafn;
$url = «https://api-v2launch.trakt.tv/users/» . $notendanafn. ‘/’. $slóð ;
$ch = curl_init();
curl_setopt_array($ch, fylki(
CURLOPT_URL => $url,
CURLOPT_HTTPHEADER => fylki(
«Content-Type: application/json»,
«trakt-api-lykill: » . $apikey,
«trakt-api-útgáfa: 2»),
CURLOPT_VERBOSE => satt,
CURLOPT_RETURNTRANSFER => satt,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => 0
));
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpCode == 404) {
exit(«<h3>Rangt notendanafn!</h3>»);
}
curl_close($ch);
$zip->addFromString($skráarnafn, $niðurstaða);
}

Afrit af Google Play Music lagalista
https://darekkay.com/2014/04/21/google-play-music-playlist-backup/

Post flakk