From 09b07fd184d1b55374eccf3426f45212c719bc2c Mon Sep 17 00:00:00 2001 From: sijanec Date: Wed, 30 Dec 2020 22:38:46 +0100 Subject: 0.0.4: dodal ogled iz tujine --- Makefile | 2 +- README.md | 14 ++++++++++++-- rtv4d-dl | Bin 52776 -> 67272 bytes rtv4d-dl.c | 27 +++++++++++++++++++++++++-- 4 files changed, 38 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 62d67b2..ad65753 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ prepare: sudo apt install build-essential gcc compile: - gcc rtv4d-dl.c -o rtv4d-dl -Wall -lm -I. + gcc rtv4d-dl.c -g -o rtv4d-dl -Wall -lm -I. install: mkdir -p ~/.local/bin diff --git a/README.md b/README.md index 0260c12..10aac13 100644 --- a/README.md +++ b/README.md @@ -39,13 +39,15 @@ z uporabo programa se strinjate z naslednjimi stavki: * **živo**: za možne programe in razlago dolžine glej *dodatno o prenosu v živo* # trenutna izdaja programa: -* program je bil nazadnje ročno testiran 13. decembra 2020 in takrat je DELOVAL. -* različica: 0.0.3 +* program je bil nazadnje ročno testiran 30. decembra 2020 in takrat je DELOVAL. +* različica: 0.0.4 ## dnevnik sprememb: * 0.0.2 - 13. december 2020: sedaj pravilno naloži samo največjo kvaliteto, pred tem se naloži naključna kvaliteta. * 0.0.3 - 24. december 2020: dodano prenašanje VTT podnapisov in prenosov v živo +* 0.0.4 - 30. december 2020: dodani alternativni strežniki za prenos v živo iz + tujine # o * program je spisan 100% v C programskem jeziku @@ -73,6 +75,8 @@ z uporabo programa se strinjate z naslednjimi stavki: - nizka prioriteta, bolje obdržati formo *brez knjižnjic* * narediti mehanizem za avtomatsko posodobitev binarne datoteke - namesto HTTP se bo uporabljajo preprosto podpisovanje, BREZ KNJIŽNIC +* ugotoviti mehanizem rotacije/ponovne uporabe identifikatorjev kosov v živo, + glej [dodatno o prenosu v živo](#dodatno_o_prenosu_v_živo). ## predvajanje v živo * ker predvajanje v živo na RTVSLO trenutno potrebuje Javascript, bi bilo @@ -107,3 +111,9 @@ z uporabo programa se strinjate z naslednjimi stavki: playlist.m3u8 datoteke in branje po kosih. * če program ni bil prekinjen, bo po končanem prenosu v stdout napisal metapodatke pretoka v živo. +* **težava:** vsake toliko časa bo strežnik številko kosa rotiral nazaj. to + prepreči snemanje neskončno v prihodnost in program bo ostal v krogu. +* za omogočanje snemanja iz tujine se gostiteljska imena pretočnih strežnikov + zamenjajo s slovenskimi. če slovenski strežniki niso več aktualni, program + ne bo delal. v tem primeru me kontaktirajte in med prevajanjem (angl. + *compilation*) nastavite zastavico RTV_NASTAVITEV_BREZ_LOKACIJSKIH_SPREMEMB. diff --git a/rtv4d-dl b/rtv4d-dl index 0c62ff1..e9b581a 100755 Binary files a/rtv4d-dl and b/rtv4d-dl differ diff --git a/rtv4d-dl.c b/rtv4d-dl.c index 6da6a61..1094ea5 100644 --- a/rtv4d-dl.c +++ b/rtv4d-dl.c @@ -65,7 +65,7 @@ #define RTV_JWT_SIZEOF 43+1 #define RTV_PREDVAJALNIK_URL "http://4d." RTV_SLD "/arhiv/v/%u" #define RTV_PREDVAJALNIK_URL_SIZEOF (32+1 + 12) -#define RTV_VER "0.0.3" +#define RTV_VER "0.0.4" #define RTV_ZIVO_PROGRAM_SIZEOF 12 #define RTV_API_ZIVO_URL \ "http://api." RTV_SLD "/ava/getLiveStream/tv.%." \ @@ -122,6 +122,16 @@ #define RTV_FREE(param) do { free(param); param = NULL; } while (0) #define RTV_HTTP_SUCCESS(koda) ((koda / 100) == 2) /* če je koda 2xx */ #define RTV_ZIVO_P_DOLZINA 10 +#define RTV_INT_V_SLO(niz) /* niz naj bo http url */ \ + if (strstr(niz, "-int.")) { \ + strcpy(strstr(niz, "-int."), "-slo."); /* nastavimo povezavo kot medna. */ \ + niz[8]--; /* pri medn. je štev. ponav. za 1 večja */ \ + RTV_NAPISI(OPOZORILO, "izven Slovenije prenašate vsebino RTVSLO. Če ne " \ + "plačujete RTV prispevka, ali če za to niste pooblaščeni, KRŠITE " \ + "AVTORSKE PRAVICE in STE V PREKRŠKU - v tem primeru nemudoma" \ + "prenehajte uporabljati program s Ctrl-C! naslovi so bili spremenjeni, " \ + "tako da bo prenos še vedno deloval, če pa ne, pa poglejte navodila."); \ + } struct meta_oddaja { size_t naslov_sizeof; char * naslov; /* Vreme ob 22h */ @@ -574,6 +584,11 @@ int rtv_zivo_izpolni(struct rtv_zivo_meta * m) { } else { RTV_NAPISI(HROSC, "sedanjost je %u", m->sedanjost); } +#ifndef RTV_NASTAVITEV_BREZ_LOKACIJSKIH_SPREMEMB + RTV_INT_V_SLO(m->seznam_predvajanja_url); + RTV_INT_V_SLO(m->kazalo_url); + RTV_INT_V_SLO(m->kos_format); +#endif rtv_zivo_izpolni_returncleanly: RTV_FREE(temp); fclose(odgstream); @@ -585,7 +600,7 @@ int rtv_zivo_izpolni(struct rtv_zivo_meta * m) { int main (int argc, char ** argv) { if (argc < 1+1) { - fprintf(stderr, "preberi README.md pred uporabo programa, saj vsebuje" + fprintf(stderr, "preberi README.md pred uporabo programa, saj vsebuje " "navodila in ostalo.\n"); return 1; } @@ -854,6 +869,14 @@ int main (int argc, char ** argv) { fclose(fd); returnstatus = 0; } + fprintf(stdout, "program: %s\nsedanjost: %u\nprvi: %u\ndolzina: %u\n" + "diskrepanca: %u\nprenesenih_kosov_preteklost: %u\n" + "prenesenih_kosov_prihodnost: %u\npreteklost: %u\nprihodnost: %u\n" + "seznam_predvajanja_url: %s\nkazalo_url: %s\nkos_format: %s\n" + "api_url: %s\n", z->program, z->sedanjost, z->prvi, z->dolzina, + z->diskrepanca, z->prenesenih_kosov_preteklost, + z->prenesenih_kosov_prihodnost, z->preteklost, z->prihodnost, + z->seznam_predvajanja_url, z->kazalo_url, z->kos_format, z->api_url); fclose(fd2); break; default: -- cgit v1.2.3 From 2bd0a33c786e08234f4752271d33ae2bb62165d5 Mon Sep 17 00:00:00 2001 From: sijanec Date: Wed, 30 Dec 2020 22:45:42 +0100 Subject: =?UTF-8?q?0.0.4:=20=C5=BEivi=C5=A1=20in=20se=20sproti=20u=C4=8Di?= =?UTF-8?q?=C5=A1---?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtv4d-dl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rtv4d-dl.c b/rtv4d-dl.c index 1094ea5..4d22afe 100644 --- a/rtv4d-dl.c +++ b/rtv4d-dl.c @@ -123,8 +123,9 @@ #define RTV_HTTP_SUCCESS(koda) ((koda / 100) == 2) /* če je koda 2xx */ #define RTV_ZIVO_P_DOLZINA 10 #define RTV_INT_V_SLO(niz) /* niz naj bo http url */ \ - if (strstr(niz, "-int.")) { \ - strcpy(strstr(niz, "-int."), "-slo."); /* nastavimo povezavo kot medna. */ \ + if (strstr(niz, "-int")) { /* je strstr-jati trikrat potratno? */ \ + strcpy(strstr(niz, "-int"), "-slo"); /* nastavimo povezavo kot medna. */ \ + strstr(niz, "-slo")[strlen("-slo")] = '.'; \ niz[8]--; /* pri medn. je štev. ponav. za 1 večja */ \ RTV_NAPISI(OPOZORILO, "izven Slovenije prenašate vsebino RTVSLO. Če ne " \ "plačujete RTV prispevka, ali če za to niste pooblaščeni, KRŠITE " \ -- cgit v1.2.3 From dd5040e87fbf61d443c415c0ff16d1a6ef922400 Mon Sep 17 00:00:00 2001 From: sijanec Date: Wed, 30 Dec 2020 22:53:21 +0100 Subject: =?UTF-8?q?0.0.4:=20kon=C4=8Dno?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtv4d-dl | Bin 67272 -> 67272 bytes rtv4d-dl.c | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rtv4d-dl b/rtv4d-dl index e9b581a..a6d1cc4 100755 Binary files a/rtv4d-dl and b/rtv4d-dl differ diff --git a/rtv4d-dl.c b/rtv4d-dl.c index 4d22afe..1cda2f6 100644 --- a/rtv4d-dl.c +++ b/rtv4d-dl.c @@ -123,10 +123,9 @@ #define RTV_HTTP_SUCCESS(koda) ((koda / 100) == 2) /* če je koda 2xx */ #define RTV_ZIVO_P_DOLZINA 10 #define RTV_INT_V_SLO(niz) /* niz naj bo http url */ \ - if (strstr(niz, "-int")) { /* je strstr-jati trikrat potratno? */ \ - strcpy(strstr(niz, "-int"), "-slo"); /* nastavimo povezavo kot medna. */ \ - strstr(niz, "-slo")[strlen("-slo")] = '.'; \ - niz[8]--; /* pri medn. je štev. ponav. za 1 večja */ \ + if (strstr(niz, "-int")) { /* je strstr-jati dvakrat potratno? */ \ + strncpy(strstr(niz, "-int"), "-slo", strlen("-slo")); /* nast. pov. \/ */ \ + niz[8]--; /* pri medn. je štev. ponav. za 1 večja */ /* kot mednarodno */ \ RTV_NAPISI(OPOZORILO, "izven Slovenije prenašate vsebino RTVSLO. Če ne " \ "plačujete RTV prispevka, ali če za to niste pooblaščeni, KRŠITE " \ "AVTORSKE PRAVICE in STE V PREKRŠKU - v tem primeru nemudoma" \ @@ -453,6 +452,7 @@ int rtv_meta_izpolni(struct meta_oddaja * m) { int rtv_zivo_izpolni(struct rtv_zivo_meta * m) { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wnonnull" +#pragma GCC diagnostic ignored "-Wstringop-truncation" /* za RTV_INT_V_SLO(u) */ int returnstatus = 0; FILE * odgstream; char * odg; -- cgit v1.2.3 From fd2ceaef3d9e2b300c901a29a4466bdc7691a74a Mon Sep 17 00:00:00 2001 From: sijanec Date: Wed, 30 Dec 2020 22:59:33 +0100 Subject: =?UTF-8?q?0.0.4:=20"po=20to=C4=8Di=20zvoniti=20je=20prepozno"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtv4d-dl | Bin 67272 -> 67272 bytes rtv4d-dl.c | 14 +++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/rtv4d-dl b/rtv4d-dl index a6d1cc4..6195ea3 100755 Binary files a/rtv4d-dl and b/rtv4d-dl differ diff --git a/rtv4d-dl.c b/rtv4d-dl.c index 1cda2f6..89b57e1 100644 --- a/rtv4d-dl.c +++ b/rtv4d-dl.c @@ -490,6 +490,9 @@ int rtv_zivo_izpolni(struct rtv_zivo_meta * m) { /* če obstaja ?DVR na koncu, bo vsebina gzipana, to nas samo moti */ strchrnul(m->seznam_predvajanja_url, '?')[0] = '\0'; /* odstrani parametre */ RTV_HTTPS_V_HTTP(m->seznam_predvajanja_url); +#ifndef RTV_NASTAVITEV_BREZ_LOKACIJSKIH_SPREMEMB + RTV_INT_V_SLO(m->seznam_predvajanja_url); +#endif rewind(odgstream); http_get(m->seznam_predvajanja_url, odgstream); for (i = 0; i < ftell(odgstream); i++) { @@ -509,6 +512,9 @@ int rtv_zivo_izpolni(struct rtv_zivo_meta * m) { break; /* spet, potrebujemo samo prvi t. i. "chunklist". */ } } +#ifndef RTV_NASTAVITEV_BREZ_LOKACIJSKIH_SPREMEMB + RTV_INT_V_SLO(m->kazalo_url); +#endif RTV_NAPISI(HROSC, "kazalo_url => %s", m->kazalo_url); rewind(odgstream); returnstatus = http_get(m->kazalo_url, odgstream); @@ -568,6 +574,9 @@ int rtv_zivo_izpolni(struct rtv_zivo_meta * m) { memmove(e+2, e+strlen(temp), strlen(temp)+1); /* naredimo prostor 2 */ e[0] = '%'; e[1] = 'u'; /* napišemo format v prostorček */ RTV_HTTPS_V_HTTP(m->kos_format); +#ifndef RTV_NASTAVITEV_BREZ_LOKACIJSKIH_SPREMEMB + RTV_INT_V_SLO(m->kos_format); +#endif RTV_NAPISI(HROSC, "m->kos_format => %s", m->kos_format); } e = strrchr(m->kos_format+strlen("http://"), '/')+1; @@ -585,11 +594,6 @@ int rtv_zivo_izpolni(struct rtv_zivo_meta * m) { } else { RTV_NAPISI(HROSC, "sedanjost je %u", m->sedanjost); } -#ifndef RTV_NASTAVITEV_BREZ_LOKACIJSKIH_SPREMEMB - RTV_INT_V_SLO(m->seznam_predvajanja_url); - RTV_INT_V_SLO(m->kazalo_url); - RTV_INT_V_SLO(m->kos_format); -#endif rtv_zivo_izpolni_returncleanly: RTV_FREE(temp); fclose(odgstream); -- cgit v1.2.3 From 867ccf7ffd4f7a7f19bb9f4f15bc02a385381ae4 Mon Sep 17 00:00:00 2001 From: sijanec Date: Wed, 30 Dec 2020 23:05:26 +0100 Subject: =?UTF-8?q?0.0.4=20pripravljen=20za=20zdru=C5=BEitev=20(-:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtv4d-dl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtv4d-dl.c b/rtv4d-dl.c index 89b57e1..c4343bd 100644 --- a/rtv4d-dl.c +++ b/rtv4d-dl.c @@ -127,8 +127,8 @@ strncpy(strstr(niz, "-int"), "-slo", strlen("-slo")); /* nast. pov. \/ */ \ niz[8]--; /* pri medn. je štev. ponav. za 1 večja */ /* kot mednarodno */ \ RTV_NAPISI(OPOZORILO, "izven Slovenije prenašate vsebino RTVSLO. Če ne " \ - "plačujete RTV prispevka, ali če za to niste pooblaščeni, KRŠITE " \ - "AVTORSKE PRAVICE in STE V PREKRŠKU - v tem primeru nemudoma" \ + "plačujete RTV prispevka ali če za to niste pooblaščeni, KRŠITE" \ + "AVTORSKE PRAVICE in STE V PREKRŠKU - v tem primeru nemudoma " \ "prenehajte uporabljati program s Ctrl-C! naslovi so bili spremenjeni, " \ "tako da bo prenos še vedno deloval, če pa ne, pa poglejte navodila."); \ } -- cgit v1.2.3 From 66c73681ab56edd599642e3903ed352f35644846 Mon Sep 17 00:00:00 2001 From: sijanec Date: Wed, 30 Dec 2020 23:10:12 +0100 Subject: 0.0.4 sedaj pa res pripravljen (; --- Makefile | 2 +- rtv4d-dl | Bin 67272 -> 67272 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ad65753..62d67b2 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ prepare: sudo apt install build-essential gcc compile: - gcc rtv4d-dl.c -g -o rtv4d-dl -Wall -lm -I. + gcc rtv4d-dl.c -o rtv4d-dl -Wall -lm -I. install: mkdir -p ~/.local/bin diff --git a/rtv4d-dl b/rtv4d-dl index 6195ea3..c780a48 100755 Binary files a/rtv4d-dl and b/rtv4d-dl differ -- cgit v1.2.3