Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rewrite library to use JSON files #104

Merged
merged 1 commit into from Jan 10, 2017

Conversation

lzoubek
Copy link
Member

@lzoubek lzoubek commented Jan 10, 2017

Přepsán kód, který importuje do knihovny tak, aby využíval JSON soubory.
Funguje:

  • přidání jednoho filmu
  • přidání včech filmů
  • přidání jednoho seriálu
  • přidání všech seriálů
  • označení seriálu obsažených v knihovně (žlutá hvězdička)
  • odebrání seriálu z knihovny

Odebral jsem možnost přidat do knihovny "Recently Added Movies", myslím, že nemá moc smysl.

Při upgrade z předcházející verze se bude knihovna (označené seriály) jevit jako prázdná.

.strm soubory vygenerované verzí < 1.3.0 plugin už nepřehraje. Uživatelé budou muset nejprve smazat původní .strm a pak přidat do knihovny obsah znovu. Mazání je nutné, protože se mohlo změnit pojmenování filmů/seriálů.

Je třeba otestovat jeslti nepadá automatická aktualizaci knihovny, seriál se refreshuje jednou za den

@co5mo
Copy link

co5mo commented Jan 10, 2017

recently added movies ma urcite zmysel ked chceme mat library stale aktualnu dakujem

@janpal
Copy link

janpal commented Jan 10, 2017

to s tou knihovnou je skoda, ja som ju vyrabal na androidu 36 hodin. Ak by ste dali hint ako spravit "upgrade script" kludne sa do neho pustim

@lzoubek
Copy link
Member Author

lzoubek commented Jan 10, 2017

@co5mo muze byt, pridam, jak mas ale jistotu, ze ti nic neuteklo? Musel bys to rucne poustet dost casto. Pridani vsech filmy do knihovny je u me na notasu otazka ani ne minuty.

@janpal myslim, upgrade script neni mozne ani napsat. V knihovne (databazi) se hashuji subskripce na zaklade URL, coz je u starsi verze webova stranka sosace se serialem, u novejsi je to adresa JSON souboru se serialem. Musel bys to byt schopen naparovat

@co5mo
Copy link

co5mo commented Jan 10, 2017

aha myslel som si ze tam add to libraty funguje rovnako ako subscribcia k serialom ja to moc nevyuzivam ale ludia v mojom okoli ano tak mozno by sa to mohlo tak spravat

@lzoubek
Copy link
Member Author

lzoubek commented Jan 10, 2017

@janpal zkus otestovat pridani vsech serialu, urcite to bude rychlejsi. Mimo to, ze cteni JSON souboru je rychlejsi, odstranil jsem pri importu nekolik kusu zbytecneho kodu, ktere ukladani zpomalovali

@lzoubek
Copy link
Member Author

lzoubek commented Jan 10, 2017

@co5mo add to library u filmu funguje jen jednorazove, jakmile film jednou pridas, uz se nikdy nerefreshuje - takhle je to odjakziva. V budoucnu bychom toto mohli pridat jako feature, ze by jsi mel treba vsechny filmy, ktere by se automaticky refreshovali.

@co5mo
Copy link

co5mo commented Jan 10, 2017

ok no problem budem teda refreshovat cele manualne dakujem dufam ze to bude generovať aj anglické nazvy strm

@janpal
Copy link

janpal commented Jan 10, 2017

@lzoubek dump serialov aj filmov nebol bolestivy. dlhe je generovanie knihovny .. stahovanie obrazkov popisov a ratingu. neviem ako presne kodi hashuje databazu ale napada ma ze si necham vygenerovat novy dump zo sosacu a porovnam zo starym dumpom (na urovni adresarovej struktury). Rozdiely vymazem z disku aj z kodi databazy a potom jednoducho preplacnem stare strm subory novymi. Kniznica bude pouzitelna a kodi si ju postupne bude moct aktualizovat ako dlho bude chciet...

@lzoubek
Copy link
Member Author

lzoubek commented Jan 10, 2017

@co5mo nazvy by meli byt dle lokalizace kodi

@co5mo
Copy link

co5mo commented Jan 10, 2017

@janpal toto sa da ciastocne vyriesit generovanim priamo nfo z strm suborov ale to je asi buducnost stahovanie obrázkov trva dlho stym sa nic neda robit mozno keby sa dalo vypnut ale to asi kodi nevie a stiahnut az pri zobrazeni v library (treba si uvedomit ze nikdo nema taku obrovsku library a kodi nato nieje stavane prilis)

Copy link
Member

@lubo lubo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Na kolko znakov zarovnavas ? 79 ? Nechceme 100 ?

'url': item['url'], 'action': LIBRARY_ACTION_REMOVE_SUBSCRIPTION, 'name': self.get_library_video_name(serial)}}
else:
item['menu'] = {LIBRARY_MENU_ITEM_ADD: {
'url': item['url'], 'type': LIBRARY_TYPE_TVSHOW, 'action': LIBRARY_ACTION_ADD, 'name': self.get_library_video_name(serial)}}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tieto riadky su pridlhe. Ja osobne preferujem mat kazdy kluc na samostatnom riadku.

item['title'] = series_key + "x" + episode_key + " - " + video['n']
item['img'] = IMAGE_EPISODE + video['i']
item['title'] = series_key + "x" + \
episode_key + " - " + video['n']
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nie je toto zbytocne zalomene ? Nezda sa mi, ze bez toho by bol ten riadok pridlhy. Taktiez, ak chces vyskladavat zlozitejsie stringy, tak radsej pouzivaj .format(). Mozes aj %, ale to je deprecated a ja by som to nepouzival.

@lzoubek lzoubek merged commit 937d8a4 into kodi-czsk:json-rewrite Jan 10, 2017
@ExSport
Copy link
Contributor

ExSport commented Jan 11, 2017

@lzoubek

Odebral jsem možnost přidat do knihovny "Recently Added Movies", myslím, že nemá moc smysl.

V minulosti mel. Kdyz se musel parsovat cely adresar MOVIES, trvalo to 2-3min a s tim to i vice zatezovalo server. Proto tu byla moznost aktualizace jednou za cas pres RECENTLY ADDED, kdy to trvalo 3 sekundy a stahlo poslednich 200 kousku = mensi zatez i na server.
Kdyz jsou ted zdroje JSON, asi uz to nema az takovy vyznam.
JSON pro RECENTLY ADDED ma 20 KB coz je poslednich 100 polozek.
JSON pro 0-9 a A-Z ma necele 3MB celkem coz je pro server ok.
V pripade, ze by byl cacheovan za CloudFlare/jinou CDN sluzbu/Proxy, pak by zatez byla nulova (staticky json by se stahoval vyhradne z CDN az do expirace cache ci zmeny json)
Je pravda ze nejnarocnejsi cast je opravdu az nasledne scrapovani z CSFD/IMDB/...
Pokud to tedy nekdo dela denne ci tydne, aby videl co se nove pridalo, tak pro nej by to asi melo stale smysl 👍

@lzoubek
Copy link
Member Author

lzoubek commented Jan 11, 2017

@ExSport souhlasím, přidám to v dalším PR, mám ještě připraveno generování .nfo i pro filmy, které budou nově obsahovat IMDB a CSFD linky

@ExSport
Copy link
Contributor

ExSport commented Jan 11, 2017

@lzoubek Super dik
Btw. k cemu je to .nfo dobre v pripade pridani do knihovny? Jak se KODI zachova? Uvidi NFO link a info tedy nacte z nej ci to co bude mit v databazi pri scrapovani napr. CSFD pluginem? V pripade tisicu polozek, kdyby ty NFO obsahovaly link napr. na postery ci jine obrazky, pokud by se nacitaly online misto z DB, tak prohlizeni knihovny by bylo nepouzitelne. Uz ted to vyzaduje mit THUMBS slozku presmerovanou na rychlou externi kartu (na android boxech se temer nikde vsechny THUMBS do samotneho zarizeni nevlezou)
Jaka je logika v KODI ci co nam da stahovani .NFO navic oproti stavu bez nej? Vsiml jsem si, ze u serialu to nekdy napise, ze polozka obsahuje lokalni info, jestli ji chci opravdu stahnout z netu...coz chci, protoze kolikrat ten stahly info file ukazuje uplne na neco jine ci na stara metadata...
Nejak jsem nepochopil, proc se JSON budou generovat jen jednou za nekolik dni, kdyz v kombinaci s CDN se to da delat klidne denne a na samotny server to nebude mit temer zadny dopad protoze samotny load pujde jen do cache=CDN....live search je vlastne jedina vetsi zatez na vlastni server.
Dik
P.S.
A jeste to propojit se @zbyna vylepsenimi knihovny a bylo by to top 👍

@co5mo
Copy link

co5mo commented Jan 11, 2017

takto to mam ja: thumbnails treba vypnut pri hercoch a pri suboroch (Extract thumbnail and video information + Download actor thumbnails when adding to library) v Kodi nastaveni + znizit ich kvalitu a ked naskenujes celu library tak ich vymazat potom sa ti nacitaju len vtedy ked ich kodi potrebuje zobrazit co je dostatocne umna rychle

viac info tu:
http://kodi.wiki/view/NFO_files
http://kodi.wiki/view/HOW-TO:Reduce_disk_space_usage

nemyslim si ze by nas malo trapit kolko to trva lebo spravis to raz a hotovo

@ExSport
Copy link
Contributor

ExSport commented Jan 11, 2017

@co5mo Vypnuti hercu mam vyple at THUMBS zabira co nejmene, zbytek je ale zavisly na moznostech nastaveni scraperu (kvalita, velikost,...). Nektere to vubec nemaji a me ani nejde o to tu velikost minimalizovat...EDIT: Ok, na tagy "imageres\fanartres" v advancedsettings jsem pozapomnel :)
Btw. kdyz uz je nascrapujes, nevidim duvod proc je mazat. Proto je mam na externi karte, kde se vlezou a pri prohlizeni se relativne rychle docitaji a nemusi se stahovat uz na tak pomalem netu.
Navic online se ti nactou jen pokud KODI je najde v NFO a nebo je zakodovan se STRM souborem, jinak nevi kde je ma hledat (neznam ale KODI :) ). A zobrazit si nahledy na jednotlive polozky, kde se ti jich vleze 20? a k nim se musi pri projizdeni postupne stahovat poster/logo/fanart/banner ci nevim co, tak od plynulosti to musi mit pekne daleko i na 100Mbitu.

@lzoubek
Copy link
Member Author

lzoubek commented Jan 11, 2017

@ExSport kodi pouziva .nfo soubory jako pomoc scrapperum, nebo je mozne v .nfo mit rovnou vsechny metadata o filmu. CSFD scrapper by mohl byt schopen najit CSFD link a stahnout zpravne informace. Pokud nfo nema, zkousi to podle nazvu, coz muze vest ke spatnemu oznaceni

To, ze je scan scrapperu pomaly je podle me zpusobeny samotnou sluzbou, kde se scrapuje a navic si myslim, ze bude v kodi nejaky cekani, aby se scrapper nechoval jako DoS utocnik.

To ze je pak kodi pomale kdyz mas v knihovne 13k filmu druha. Na takovy objemy to neni dimenzovany, nebo by muselo behat na externi (msyql databazi) co pobezi na slusne masine s SSD diskem.

Pokud je chces smazat z kodi databaze, staci odebrat ten zdoj, co obsahuje .strm, kodi ti pak samo nabidne, jestli chces procistit knihovnu. Nebo kdyz nektere .strm umazes a v nastaveni pak pustis cisteni knihovny, odstrani polozky, pro ktere uz nenajde soubor s videem

@svacna
Copy link

svacna commented Jan 11, 2017

Je možné otestovat verzi i s knihovnou? Mám teď verzi od ZBYNA a funguje vše až na knihovnu. Jinak skvělá práce chlapi. Díky..

@lzoubek
Copy link
Member Author

lzoubek commented Jan 11, 2017

To této větve mergujeme veškerý nový vývoj.

Jakmile to bude v uspokojivé kvalitě - čemuž pomůže i tvoje testování, celé to hodíme do masteru a vypublikuje se nová verze.

Klidně otevři issues s označením, že jde o json-rewrite větev

@svacna
Copy link

svacna commented Jan 11, 2017

Díky, budu testovat.

@co5mo
Copy link

co5mo commented Jan 11, 2017

iba otazka nieje zbytocne mozno aj zatazujuce vytvarat solo adresar pre kadzdy film ?

@splichy
Copy link

splichy commented Jan 11, 2017

Nejsem si jist zda je to spravne, ale od PR #104 pri pridani serialu do knihovny se vytvari slozky ve formatu TK3VUH~9 - je pravda, ze je tak alespon snadne poznat, ktery serial je stazeny a ktery streamovany. Pokud se jedna o nejakou normalizaci nazvu, tak v poradku.

@ExSport
Copy link
Contributor

ExSport commented Jan 12, 2017

@lzoubek
Vim co muze NFO obsahovat i to, ze ho vyuziva scraper. Jen jsem chtel vedet, zda napr. KODI ho umi nejak dale vyuzit, mimo scraper, ktery si clovek ridi rucne. Pochopil jsem, ze tedy ne. Praci s knihovnou, mazani, cisteni atd. ovladam, nemam zajem neco mazat:) Rychlost je v pohode, jen to filtrovani...pomale ci zasekne cele KODI/SPMC a ztraci fokus pri temer jakekoliv provedene akci 👎
Ono pokud ty NFO budou obsahovat validni odkaz, tak ano, scraperu to muze pomoci v presnosti. Zatim co jsem ale videl, tak vetsinou NFO obsahovalo spatne linky, tak uvidime 👍
Btw. odkud je budes brat? JSONy je v sobe nemaji...
A sorry za trosku Off-Topic.

@Saljack
Copy link
Contributor

Saljack commented Jan 12, 2017

@ExSport JSONy je v sobe maji jsou to pismena m pro imdb.com a c pro csfd taky jsem premyslel co ty cisla znamenaji ;-)

@ExSport
Copy link
Contributor

ExSport commented Jan 12, 2017

@Saljack Dobry postreh, dik
Ja sel na to v rychlosti pres CTRL+F + CSFD = "nic nenalezeno" a tim jsem skoncil:)
Tak snad budou ty odkazy validni.

@lzoubek
Copy link
Member Author

lzoubek commented Jan 12, 2017

@splichy K3VUH~9 se vytvari kde? jaka verze kodi + OS? co se pod tim skryva za serial?

@splichy
Copy link

splichy commented Jan 12, 2017

@lzoubek
qnap qpkg mykodi16
jinak vlastne VM:
Running on Ubuntu 14.04.1 LTS, kernel: Linux x86 64-bit version 3.19.8
Kodi 16.1-RC1 Git:46d1480

TK3VUH~9 => Timeless (2016) tak se i zobrazi v knihovne

P5HA3R~9 => Pustina (v aj. Wasteland), s puvodni verzi se zobrazovalo jako Wasteland, ted jako Pustina, coz bude mozna jen jinym odkazem v NFO

slozky se vytvareji ve slozce serialy(z konfigurace pluginu), krom nazvu serialu je struktura normalni:
TK3VUH~9/
├── Season 1
│   ├── S01E01.strm
│   ├── S01E02.strm
│   ├── S01E03.strm
│   ├── S01E04.strm
│   ├── S01E05.strm
│   ├── S01E06.strm
│   ├── S01E07.strm
│   ├── S01E08.strm
│   ├── S01E09.strm
│   └── S01E10.strm
└── tvshow.nfo

plugin mam posledni release z czsk repozitare, skripty(sosac.py a sutils.py) jsem nahrazoval z https://raw.githubusercontent.com/kodi-czsk/plugin.video.sosac.ph/json-rewrite/resources/lib/

@lzoubek
Copy link
Member Author

lzoubek commented Jan 12, 2017

dela to u vsech serialu? Je mozne, ze je to tim, ze se na konci slozky se serialem generuje mezera - to uz je fixle, pred 2h jsem mergnul opravu, zkus soubory prepsat githubem znovu.

@splichy
Copy link

splichy commented Jan 13, 2017

@lzoubek zda se, ze to delalo u vsech. Prepsal jsem githubem a nyni uz je to OK. Diky dobra prace.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants