From c33216f2dd02a03d8a0c234ed48c4c762ae0c445 Mon Sep 17 00:00:00 2001 From: "Leon Etienne (ubuntu wsl)" Date: Wed, 30 Sep 2020 20:57:12 +0200 Subject: [PATCH] GUI Functionality --- Tubio/DownloadManager.cpp | 9 +- Tubio/RestQueryHandler.cpp | 16 +- Tubio/frontend/.nojekyll | 0 Tubio/frontend/200.html | 9 + Tubio/frontend/README.md | 11 + Tubio/frontend/_nuxt/3545cee.js | 1 + Tubio/frontend/_nuxt/44d19af.js | 2 + Tubio/frontend/_nuxt/5104fab.js | 1 + Tubio/frontend/_nuxt/9898305.js | 1 + Tubio/frontend/_nuxt/9ba7375.js | 2 + Tubio/frontend/_nuxt/LICENSES | 29 + Tubio/frontend/_nuxt/ab89623.js | 1 + .../_nuxt/static/1601491529/payload.js | 1 + .../static/1601491529/settings/payload.js | 1 + .../fonts/zilla-slab/ZillaSlab-Bold.ttf | Bin 0 -> 248056 bytes .../fonts/zilla-slab/ZillaSlab-BoldItalic.ttf | Bin 0 -> 255276 bytes .../fonts/zilla-slab/ZillaSlab-Italic.ttf | Bin 0 -> 252880 bytes .../fonts/zilla-slab/ZillaSlab-Light.ttf | Bin 0 -> 239836 bytes .../zilla-slab/ZillaSlab-LightItalic.ttf | Bin 0 -> 245204 bytes .../fonts/zilla-slab/ZillaSlab-Medium.ttf | Bin 0 -> 242968 bytes .../zilla-slab/ZillaSlab-MediumItalic.ttf | Bin 0 -> 251920 bytes .../fonts/zilla-slab/ZillaSlab-Regular.ttf | Bin 0 -> 244760 bytes .../fonts/zilla-slab/ZillaSlab-SemiBold.ttf | Bin 0 -> 245156 bytes .../zilla-slab/ZillaSlab-SemiBoldItalic.ttf | Bin 0 -> 252904 bytes Tubio/frontend/assets/images/tiles/grid.png | Bin 0 -> 527 bytes Tubio/frontend/favicon.ico | Bin 0 -> 1393 bytes Tubio/frontend/index.html | 9 + Tubio/frontend/rest-dummies/cache.json | 66 + Tubio/frontend/rest-dummies/logs.json | 2198 +++++++++++++++++ Tubio/frontend/settings/index.html | 9 + tubio-frontend-nuxt-app/.nvmrc | 1 + .../components/DownloadBox.vue | 19 +- .../components/DownloadEntry.vue | 28 +- tubio-frontend-nuxt-app/components/LogBox.vue | 27 +- tubio-frontend-nuxt-app/nuxt.config.js | 2 +- tubio-frontend-nuxt-app/pages/index.vue | 48 +- tubio-frontend-nuxt-app/pages/settings.vue | 34 +- .../static/rest-dummies/logs.json | 2198 +++++++++++++++++ tubio-frontend-nuxt-app/store/dlcache.js | 24 + tubio-frontend-nuxt-app/store/logs.js | 24 + 40 files changed, 4727 insertions(+), 44 deletions(-) create mode 100644 Tubio/frontend/.nojekyll create mode 100644 Tubio/frontend/200.html create mode 100644 Tubio/frontend/README.md create mode 100644 Tubio/frontend/_nuxt/3545cee.js create mode 100644 Tubio/frontend/_nuxt/44d19af.js create mode 100644 Tubio/frontend/_nuxt/5104fab.js create mode 100644 Tubio/frontend/_nuxt/9898305.js create mode 100644 Tubio/frontend/_nuxt/9ba7375.js create mode 100644 Tubio/frontend/_nuxt/LICENSES create mode 100644 Tubio/frontend/_nuxt/ab89623.js create mode 100644 Tubio/frontend/_nuxt/static/1601491529/payload.js create mode 100644 Tubio/frontend/_nuxt/static/1601491529/settings/payload.js create mode 100644 Tubio/frontend/assets/fonts/zilla-slab/ZillaSlab-Bold.ttf create mode 100644 Tubio/frontend/assets/fonts/zilla-slab/ZillaSlab-BoldItalic.ttf create mode 100644 Tubio/frontend/assets/fonts/zilla-slab/ZillaSlab-Italic.ttf create mode 100644 Tubio/frontend/assets/fonts/zilla-slab/ZillaSlab-Light.ttf create mode 100644 Tubio/frontend/assets/fonts/zilla-slab/ZillaSlab-LightItalic.ttf create mode 100644 Tubio/frontend/assets/fonts/zilla-slab/ZillaSlab-Medium.ttf create mode 100644 Tubio/frontend/assets/fonts/zilla-slab/ZillaSlab-MediumItalic.ttf create mode 100644 Tubio/frontend/assets/fonts/zilla-slab/ZillaSlab-Regular.ttf create mode 100644 Tubio/frontend/assets/fonts/zilla-slab/ZillaSlab-SemiBold.ttf create mode 100644 Tubio/frontend/assets/fonts/zilla-slab/ZillaSlab-SemiBoldItalic.ttf create mode 100644 Tubio/frontend/assets/images/tiles/grid.png create mode 100644 Tubio/frontend/favicon.ico create mode 100644 Tubio/frontend/index.html create mode 100644 Tubio/frontend/rest-dummies/cache.json create mode 100644 Tubio/frontend/rest-dummies/logs.json create mode 100644 Tubio/frontend/settings/index.html create mode 100644 tubio-frontend-nuxt-app/.nvmrc create mode 100644 tubio-frontend-nuxt-app/static/rest-dummies/logs.json create mode 100644 tubio-frontend-nuxt-app/store/dlcache.js create mode 100644 tubio-frontend-nuxt-app/store/logs.js diff --git a/Tubio/DownloadManager.cpp b/Tubio/DownloadManager.cpp index 9f50d68..c4fe140 100644 --- a/Tubio/DownloadManager.cpp +++ b/Tubio/DownloadManager.cpp @@ -150,7 +150,7 @@ void DownloadManager::DownloadNext() if (entry->mode == DOWNLOAD_MODE::VIDEO) { std::string ytdl_call_video_base = - "youtube-dl --newline --no-call-home --no-playlist --no-part --no-warnings --limit-rate $$DL_RATE" + "youtube-dl --newline --no-call-home --no-playlist --no-part --no-warnings --socket-timeout 5 --limit-rate $$DL_RATE" " --no-mtime --no-cache-dir --recode-video mp4 --format \"bestvideo[ext=mp4]+bestaudio/best[ext=mp4]/best\"" " --merge-output-format mp4 -o \"$$DL_FILE\" \"$$DL_URL\" > \"$$DL_PROG_BUF_FILE\""; @@ -166,7 +166,7 @@ void DownloadManager::DownloadNext() else // DOWNLOAD_MODE::AUDIO { std::string ytdl_call_audio_base = - "youtube-dl --newline --no-call-home --no-playlist --no-part --no-warnings --limit-rate $$DL_RATE" + "youtube-dl --newline --no-call-home --no-playlist --no-part --no-warnings --socket-timeout 5 --limit-rate $$DL_RATE" " --no-mtime --no-cache-dir --audio-format mp3 --audio-quality 0 --extract-audio -o \"$$DL_FILE\"" " \"$$DL_URL\" > \"$$DL_PROG_BUF_FILE\""; @@ -405,7 +405,8 @@ bool DownloadManager::RemoveFromCacheByID(std::string id) FileSystem::Delete(filePath); } - Save(); + // Only save, if we can save immediately + if (downloadThreads.size() == 0) Save(); return false; } @@ -573,7 +574,7 @@ std::vector DownloadManager::ParseJsonArrayToEntries(const JasonP void DownloadManager::FetchInformation(std::string url, std::string tubId) { std::stringstream ss; - ss << "youtube-dl.exe --skip-download --dump-json \"" << url << "\" > \"" << XGConfig::downloader.cachedir << "/metadata/" << tubId << ".json" << "\"" << std::endl; + ss << "youtube-dl.exe --skip-download --no-warnings --socket-timeout 5 --dump-json \"" << url << "\" > \"" << XGConfig::downloader.cachedir << "/metadata/" << tubId << ".json" << "\"" << std::endl; system(ss.str().c_str()); return; } diff --git a/Tubio/RestQueryHandler.cpp b/Tubio/RestQueryHandler.cpp index 7a5e107..8b94fdb 100644 --- a/Tubio/RestQueryHandler.cpp +++ b/Tubio/RestQueryHandler.cpp @@ -106,8 +106,8 @@ bool RestQueryHandler::QueueDownload(const JsonBlock& request, JsonBlock& respon bool RestQueryHandler::FetchSessionCache(const JsonBlock& request, JsonBlock& responseBody, HTTP_STATUS_CODE& responseCode) { - log->cout << "Asking for session cache..."; - log->Flush(); + //log->cout << "Asking for session cache..."; + //log->Flush(); time_t max_age = time(0) - XGControl::boot_time; // Default max_age is session length std::size_t max_num = (std::size_t )-1; // Default max_num is infinite @@ -137,8 +137,8 @@ bool RestQueryHandler::FetchSessionCache(const JsonBlock& request, JsonBlock& re bool RestQueryHandler::FetchAlltimeCache(const JsonBlock& request, JsonBlock& responseBody, HTTP_STATUS_CODE& responseCode) { - log->cout << "Asking for whole cache..."; - log->Flush(); + //log->cout << "Asking for whole cache..."; + //log->Flush(); responseCode = OK; responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); @@ -254,8 +254,8 @@ bool RestQueryHandler::GetOSName(const JsonBlock& request, JsonBlock& responseBo bool RestQueryHandler::FetchSessionLogs(const JsonBlock& request, JsonBlock& responseBody, HTTP_STATUS_CODE& responseCode) { - log->cout << "Fetching session logs..."; - log->Flush(); + //log->cout << "Fetching session logs..."; + //log->Flush(); responseCode = OK; responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); @@ -267,8 +267,8 @@ bool RestQueryHandler::FetchSessionLogs(const JsonBlock& request, JsonBlock& res bool RestQueryHandler::FetchAlltimeLogs(const JsonBlock& request, JsonBlock& responseBody, HTTP_STATUS_CODE& responseCode) { - log->cout << "Fetching logs..."; - log->Flush(); + //log->cout << "Fetching alltime logs..."; + //log->Flush(); time_t max_age = -1; std::size_t max_num = (std::size_t) - 1; diff --git a/Tubio/frontend/.nojekyll b/Tubio/frontend/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/Tubio/frontend/200.html b/Tubio/frontend/200.html new file mode 100644 index 0000000..03746a7 --- /dev/null +++ b/Tubio/frontend/200.html @@ -0,0 +1,9 @@ + + + + Tubio - Video downloader + + +
Loading...
+ + diff --git a/Tubio/frontend/README.md b/Tubio/frontend/README.md new file mode 100644 index 0000000..cf00435 --- /dev/null +++ b/Tubio/frontend/README.md @@ -0,0 +1,11 @@ +# STATIC + +**This directory is not required, you can delete it if you don't want to use it.** + +This directory contains your static files. +Each file inside this directory is mapped to `/`. +Thus you'd want to delete this README.md before deploying to production. + +Example: `/static/robots.txt` is mapped as `/robots.txt`. + +More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#static). diff --git a/Tubio/frontend/_nuxt/3545cee.js b/Tubio/frontend/_nuxt/3545cee.js new file mode 100644 index 0000000..aa33609 --- /dev/null +++ b/Tubio/frontend/_nuxt/3545cee.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{110:function(t,e,n){"use strict";n.r(e);var l=n(9),o={components:{IconGear:Object(l.a)({},(function(){var t=this.$createElement,e=this._self._c||t;return e("svg",{staticClass:"bi bi-gear",attrs:{viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[e("path",{attrs:{"fill-rule":"evenodd",d:"M8.837 1.626c-.246-.835-1.428-.835-1.674 0l-.094.319A1.873 1.873 0 0 1 4.377 3.06l-.292-.16c-.764-.415-1.6.42-1.184 1.185l.159.292a1.873 1.873 0 0 1-1.115 2.692l-.319.094c-.835.246-.835 1.428 0 1.674l.319.094a1.873 1.873 0 0 1 1.115 2.693l-.16.291c-.415.764.42 1.6 1.185 1.184l.292-.159a1.873 1.873 0 0 1 2.692 1.116l.094.318c.246.835 1.428.835 1.674 0l.094-.319a1.873 1.873 0 0 1 2.693-1.115l.291.16c.764.415 1.6-.42 1.184-1.185l-.159-.291a1.873 1.873 0 0 1 1.116-2.693l.318-.094c.835-.246.835-1.428 0-1.674l-.319-.094a1.873 1.873 0 0 1-1.115-2.692l.16-.292c.415-.764-.42-1.6-1.185-1.184l-.291.159A1.873 1.873 0 0 1 8.93 1.945l-.094-.319zm-2.633-.283c.527-1.79 3.065-1.79 3.592 0l.094.319a.873.873 0 0 0 1.255.52l.292-.16c1.64-.892 3.434.901 2.54 2.541l-.159.292a.873.873 0 0 0 .52 1.255l.319.094c1.79.527 1.79 3.065 0 3.592l-.319.094a.873.873 0 0 0-.52 1.255l.16.292c.893 1.64-.902 3.434-2.541 2.54l-.292-.159a.873.873 0 0 0-1.255.52l-.094.319c-.527 1.79-3.065 1.79-3.592 0l-.094-.319a.873.873 0 0 0-1.255-.52l-.292.16c-1.64.893-3.433-.902-2.54-2.541l.159-.292a.873.873 0 0 0-.52-1.255l-.319-.094c-1.79-.527-1.79-3.065 0-3.592l.319-.094a.873.873 0 0 0 .52-1.255l-.16-.292c-.892-1.64.902-3.433 2.541-2.54l.292.159a.873.873 0 0 0 1.255-.52l.094-.319z"}}),this._v(" "),e("path",{attrs:{"fill-rule":"evenodd",d:"M8 5.754a2.246 2.246 0 1 0 0 4.492 2.246 2.246 0 0 0 0-4.492zM4.754 8a3.246 3.246 0 1 1 6.492 0 3.246 3.246 0 0 1-6.492 0z"}})])}),[],!1,null,null,null).exports,Logo:n(86).default}},r=(n(220),Object(l.a)(o,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"header flex flex-row justify-between w-full p-5"},[e("div",{staticClass:"left-icons flex flex-flex-row justify-start"},[e("nuxt-link",{attrs:{exact:"",to:"/"}},[e("div",{staticClass:"headerbutton block md:hidden"},[e("Logo",{staticClass:"headerlogo"})],1)])],1),this._v(" "),e("div",{staticClass:"right-icons flex flex-row justify-end flex-grow"},[e("nuxt-link",{attrs:{exact:"",to:"/settings"}},[e("div",{staticClass:"headerbutton button-settings"},[e("IconGear",{staticClass:"headericon icon-gear"})],1)])],1)])}),[],!1,null,"3413a9a4",null));e.default=r.exports;installComponents(r,{Logo:n(86).default})},111:function(t,e,n){"use strict";n.r(e);n(213);var l={data:function(){return{offsetX:{type:Number,default:0}}},computed:{cssVars:function(){return"transform: translateY(-"+this.offsetX/2+"px);"}},methods:{handleScroll:function(t){this.offsetX=window.scrollY}},beforeMount:function(){window.addEventListener("scroll",this.handleScroll)},destroyed:function(){window.removeEventListener("scroll",this.handleScroll)}},o=(n(216),n(9)),component=Object(o.a)(l,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("div",{staticClass:"bgdrop"}),this._v(" "),e("div",{staticClass:"bggatter__wrapper"},[e("div",{ref:"bggatter",staticClass:"bggatter",style:this.cssVars})]),this._v(" "),e("div",{staticClass:"bgmask"})])}),[],!1,null,"2e19fe75",null);e.default=component.exports},165:function(t,e,n){"use strict";var l=n(111),o=n(110),r={components:{Background:l.default,Header:o.default}},c=(n(222),n(9)),component=Object(c.a)(r,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("Background"),this._v(" "),e("Header"),this._v(" "),e("div",{staticClass:"main-column mx-auto"},[e("Nuxt",{staticClass:"w-full flex flex-col justify-start items-center"})],1)],1)}),[],!1,null,"816c6d80",null);e.a=component.exports;installComponents(component,{Background:n(111).default,Header:n(110).default})},167:function(t,e,n){n(168),t.exports=n(169)},207:function(t,e,n){var content=n(208);"string"==typeof content&&(content=[[t.i,content,""]]),content.locals&&(t.exports=content.locals);(0,n(19).default)("3a312388",content,!0,{sourceMap:!1})},208:function(t,e,n){(e=n(18)(!1)).push([t.i,'a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}:focus{outline:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none}input[type=search]{-webkit-appearance:none;-moz-appearance:none}audio,canvas,video{display:inline-block;display:inline;zoom:1;max-width:100%}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted}a:active,a:hover{outline:0}img{border:0;-ms-interpolation-mode:bicubic}figure,form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;height:13px;width:13px}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}button,html,input,select,textarea{color:#222}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}img{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}',""]),t.exports=e},209:function(t,e,n){var content=n(210);"string"==typeof content&&(content=[[t.i,content,""]]),content.locals&&(t.exports=content.locals);(0,n(19).default)("f52d43e0",content,!0,{sourceMap:!1})},210:function(t,e,n){(e=n(18)(!1)).push([t.i,'*,a,h1,h2,h3,h4,h5,h6,input,li,p{font-family:"ZillaSlab",serif}.button{background-color:#fff;border-radius:5px;min-width:80px;height:50px;display:flex;justify-content:center;align-items:center;cursor:pointer}*{-webkit-tap-highlight-color:rgba(0,0,0,0)}',""]),t.exports=e},211:function(t,e,n){var content=n(212);"string"==typeof content&&(content=[[t.i,content,""]]),content.locals&&(t.exports=content.locals);(0,n(19).default)("79e64d57",content,!0,{sourceMap:!1})},212:function(t,e,n){(e=n(18)(!1)).push([t.i,'@font-face{font-family:"ZillaSlab";src:url(/assets/fonts/zilla-slab/ZillaSlab-Regular.ttf) format("truetype")}@font-face{font-family:"ZillaSlab";src:url(/assets/fonts/zilla-slab/ZillaSlab-Italic.ttf) format("truetype");font-style:italic}@font-face{font-family:"ZillaSlab";src:url(/assets/fonts/zilla-slab/ZillaSlab-Bold.ttf) format("truetype");font-weight:700}@font-face{font-family:"ZillaSlab";src:url(/assets/fonts/zilla-slab/ZillaSlab-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:"ZillaSlab";src:url(/assets/fonts/zilla-slab/ZillaSlab-Light.ttf) format("truetype");font-weight:lighter}@font-face{font-family:"ZillaSlab";src:url(/assets/fonts/zilla-slab/ZillaSlab-Light.ttf) format("truetype");font-weight:lighter;font-style:italic}@font-face{font-family:"ZillaSlab";src:url(/assets/fonts/zilla-slab/ZillaSlab-Medium.ttf) format("truetype");font-weight:500}@font-face{font-family:"ZillaSlab";src:url(/assets/fonts/zilla-slab/ZillaSlab-Medium.ttf) format("truetype");font-weight:500;font-style:italic}',""]),t.exports=e},216:function(t,e,n){"use strict";var l=n(81);n.n(l).a},217:function(t,e,n){(e=n(18)(!1)).push([t.i,".bgdrop[data-v-2e19fe75]{width:100vw;height:100vh;position:fixed;z-index:-10;background-color:#04254e}.bggatter[data-v-2e19fe75]{width:100%;height:1000000px;position:absolute;z-index:-9;-webkit-mask-image:url(/assets/images/tiles/grid.png);mask-image:url(/assets/images/tiles/grid.png);background-color:#5954a4}.bggatter__wrapper[data-v-2e19fe75]{overflow:hidden;z-index:-9}.bggatter__wrapper[data-v-2e19fe75],.bgmask[data-v-2e19fe75]{width:100vw;height:100vh;position:fixed}.bgmask[data-v-2e19fe75]{z-index:-8;background-image:linear-gradient(transparent 50%,#04254e)}",""]),t.exports=e},218:function(t,e,n){"use strict";var l=n(82);n.n(l).a},219:function(t,e,n){(e=n(18)(!1)).push([t.i,".cls-1[data-v-341191f0]{fill:none!important}.cls-2[data-v-341191f0]{stroke:none!important}",""]),t.exports=e},220:function(t,e,n){"use strict";var l=n(83);n.n(l).a},221:function(t,e,n){(e=n(18)(!1)).push([t.i,".headericon[data-v-3413a9a4]{cursor:pointer;height:50px;width:50px;stroke:#8ad5eb;fill:#8ad5eb;transition:stroke .2s,fill .2s,color .2s,transform .2s ease-in-out}.headericon[data-v-3413a9a4]:hover{transform:rotate(90deg);stroke:#bee7f4;fill:#bee7f4}.headerlogo[data-v-3413a9a4]{cursor:pointer;height:60px;width:60px;fill:#8ad5eb;stroke:#8ad5eb;transition:stroke .2s,fill .2s,color .2s}.headerlogo[data-v-3413a9a4]:hover{stroke:#bee7f4}.headerlogo svg[data-v-3413a9a4]{fill:var(#8ad5eb);stroke:var(#8ad5eb);height:100%}.icon-gear svg[data-v-3413a9a4]{height:100%}",""]),t.exports=e},222:function(t,e,n){"use strict";var l=n(84);n.n(l).a},223:function(t,e,n){(e=n(18)(!1)).push([t.i,".main-column[data-v-816c6d80]{width:80%;padding:0 20% 50px;background-color:rgba(0,0,0,.33333);box-shadow:0 0 50px 50px rgba(0,0,0,.33333);min-height:100vh}@media(max-width:1870px){.main-column[data-v-816c6d80]{width:100%;padding:0 200px 50px}}@media(max-width:1280px){.main-column[data-v-816c6d80]{width:100%;padding:0 100px 50px}}@media(max-width:768px){.main-column[data-v-816c6d80]{width:100%;padding:0 20px 50px}}",""]),t.exports=e},224:function(t,e,n){"use strict";n.r(e),n.d(e,"state",(function(){return r})),n.d(e,"mutations",(function(){return c})),n.d(e,"actions",(function(){return d}));var l=n(26),o=n.n(l),r=function(){return{cache:[]}},c={update:function(t,data){t.cache=data}},d={update:function(t,e){o.a.post("/api",{request:"fetch_alltime_cache"}).then((function(t){"OK"===t.data.status&&e.$store.commit("dlcache/update",t.data.cache)}))}}},241:function(t,e,n){"use strict";n.r(e),n.d(e,"state",(function(){return r})),n.d(e,"mutations",(function(){return c})),n.d(e,"actions",(function(){return d}));var l=n(26),o=n.n(l),r=function(){return{logs:[]}},c={update:function(t,data){t.logs=data}},d={update:function(t,e){o.a.post("/api",{request:"fetch_session_logs"}).then((function(t){"OK"===t.data.status&&e.$store.commit("logs/update",t.data.logs)}))}}},81:function(t,e,n){var content=n(217);"string"==typeof content&&(content=[[t.i,content,""]]),content.locals&&(t.exports=content.locals);(0,n(19).default)("1b4a9212",content,!0,{sourceMap:!1})},82:function(t,e,n){var content=n(219);"string"==typeof content&&(content=[[t.i,content,""]]),content.locals&&(t.exports=content.locals);(0,n(19).default)("d4cb531a",content,!0,{sourceMap:!1})},83:function(t,e,n){var content=n(221);"string"==typeof content&&(content=[[t.i,content,""]]),content.locals&&(t.exports=content.locals);(0,n(19).default)("1804a966",content,!0,{sourceMap:!1})},84:function(t,e,n){var content=n(223);"string"==typeof content&&(content=[[t.i,content,""]]),content.locals&&(t.exports=content.locals);(0,n(19).default)("a00d49f6",content,!0,{sourceMap:!1})},86:function(t,e,n){"use strict";n.r(e);n(218);var l=n(9),component=Object(l.a)({},(function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 504 456.28"}},[e("defs"),e("g",{attrs:{id:"Ebene_2","data-name":"Ebene 2"}},[e("g",{attrs:{id:"Ebene_1-2","data-name":"Ebene 1"}},[e("path",{staticClass:"cls-1",attrs:{d:"M341,10h-196a33,33,0,0,0-28.55,16.49l-98,169.69a63.94,63.94,0,0,0,0,63.91l89.05,154.23a63.88,63.88,0,0,0,55.34,32H341a63.9,63.9,0,0,0,55.35-32l89-154.23a63.89,63.89,0,0,0,0-63.91L396.39,42A63.91,63.91,0,0,0,341,10Z"}}),e("path",{staticClass:"cls-2",attrs:{d:"M207.21,311.16H136.14v-7.9l8.67-.66a32,32,0,0,0,8-1.34,11,11,0,0,0,5.34-3.95,12.44,12.44,0,0,0,1.67-6.95V176a15.44,15.44,0,0,0-1.22-6.51q-1.23-2.61-5.79-4.39a58.26,58.26,0,0,0-8.4-2.5,55.35,55.35,0,0,0-8.28-1.39v-7.9h71.07v7.9a71.14,71.14,0,0,0-8.23.83,56.31,56.31,0,0,0-8.34,1.84q-4.23,1.33-5.67,4.33a15.14,15.14,0,0,0-1.45,6.68V289.14a13,13,0,0,0,1.61,6.5,11,11,0,0,0,5.51,4.51,54,54,0,0,0,7.62,2,55.31,55.31,0,0,0,9,1.16Z"}}),e("path",{staticClass:"cls-2",attrs:{d:"M354.48,172a77.69,77.69,0,0,1,16.35,26.3,94.67,94.67,0,0,1,5.89,34.09,92.89,92.89,0,0,1-6,34.15A75.91,75.91,0,0,1,354,292.7a72.4,72.4,0,0,1-24,16.46,77.24,77.24,0,0,1-59.57-.39,70.63,70.63,0,0,1-24-17.19,77.75,77.75,0,0,1-15.73-26.19,93.83,93.83,0,0,1-5.73-33q0-19.24,6-34.31A79.94,79.94,0,0,1,247.59,172a71.59,71.59,0,0,1,24.3-16.69,76.38,76.38,0,0,1,58.56.11A70.79,70.79,0,0,1,354.48,172ZM337.9,283.91A73.74,73.74,0,0,0,347,261a132.51,132.51,0,0,0,2.83-28.59,130.75,130.75,0,0,0-3.17-29.81,74,74,0,0,0-9.28-23.13A44.53,44.53,0,0,0,322,164.73a41.83,41.83,0,0,0-21.14-5.28q-13.33,0-22.69,6.11a47.62,47.62,0,0,0-15.23,16.35,78.52,78.52,0,0,0-8.29,22.92,135.15,135.15,0,0,0-2.73,27.58,132.42,132.42,0,0,0,2.9,28.92,73,73,0,0,0,9.12,22.91,44.83,44.83,0,0,0,15.12,15.3q9.12,5.5,21.8,5.5a41.9,41.9,0,0,0,21.47-5.56A43.5,43.5,0,0,0,337.9,283.91Z"}}),e("path",{staticClass:"cls-2",attrs:{d:"M220,86.76c-1.67.69-3.26,1.28-4.75,1.75a18,18,0,0,1-5.47.72c-3.19,0-5.44-.81-6.74-2.41A10.64,10.64,0,0,1,201.05,80V54.24h-6.87v-3.7h7V38.7h7V50.54h10.92v3.7H208.3V75.5a39.91,39.91,0,0,0,.17,4,7.36,7.36,0,0,0,.83,2.79,3.93,3.93,0,0,0,1.85,1.7,7.88,7.88,0,0,0,3.32.58c.64,0,1.59-.06,2.84-.17a12.8,12.8,0,0,0,2.64-.45Z"}}),e("path",{staticClass:"cls-2",attrs:{d:"M268.45,87.72,256,88.57l-.58-.54V83.21h-.23c-.62.64-1.31,1.33-2.08,2.06a14,14,0,0,1-2.66,2,17,17,0,0,1-3.35,1.58,15.07,15.07,0,0,1-4.58.54q-5,0-7.68-3.29t-2.64-9.58V58.32a4.36,4.36,0,0,0-2.06-4,4.83,4.83,0,0,0-1.74-.68,16.78,16.78,0,0,0-2.22-.29V50.85l12.69-.93.58.54V76.88q0,4.14,1.85,6.21a5.76,5.76,0,0,0,4.44,2.09,10.19,10.19,0,0,0,3.78-.66A10.73,10.73,0,0,0,252.33,83a13.68,13.68,0,0,0,1.83-1.71,10.13,10.13,0,0,0,1.22-1.68V58.05a4.74,4.74,0,0,0-.54-2.25,5.36,5.36,0,0,0-1.51-1.68,4.35,4.35,0,0,0-2.06-.55c-.92-.07-1.94-.13-3.07-.18V50.85l13.85-.93.58.54V80.63a4.4,4.4,0,0,0,.54,2.24,4.87,4.87,0,0,0,1.5,1.57,4.18,4.18,0,0,0,1.66.56c.64.09,1.35.15,2.12.18Z"}}),e("path",{staticClass:"cls-2",attrs:{d:"M315.68,69.36a20.36,20.36,0,0,1-5.4,14.39q-5.4,5.82-12.54,5.82a20.25,20.25,0,0,1-6.15-1A26.12,26.12,0,0,1,285.9,86l-2.85,4.43-2.39-.54q.18-2.85.27-6.87c.05-2.68.07-5.26.07-7.76V37.62a6.43,6.43,0,0,0-.59-2.63,4.23,4.23,0,0,0-1.53-1.89,6.21,6.21,0,0,0-2.45-.75q-1.71-.26-2.76-.33V29.55l14-.85.54.58V54.36l.27.07a16.38,16.38,0,0,1,5.23-3.82,13.64,13.64,0,0,1,5.57-1.27A14.75,14.75,0,0,1,311,54.9Q315.68,60.45,315.68,69.36Zm-8.06.27a28.67,28.67,0,0,0-.62-5.82,16.4,16.4,0,0,0-1.93-5.17A10.84,10.84,0,0,0,301.64,55a9.12,9.12,0,0,0-5.09-1.39,10.15,10.15,0,0,0-4.73,1.06,12.93,12.93,0,0,0-3.64,2.88V79.7a9.08,9.08,0,0,0,.9,2.16,9.9,9.9,0,0,0,1.84,2.35A9.8,9.8,0,0,0,293.54,86a8.55,8.55,0,0,0,3.59.67q4.69,0,7.6-4.55T307.62,69.63Z"}})])])])])}),[],!1,null,"341191f0",null);e.default=component.exports}},[[167,4,1,5]]]); \ No newline at end of file diff --git a/Tubio/frontend/_nuxt/44d19af.js b/Tubio/frontend/_nuxt/44d19af.js new file mode 100644 index 0000000..cb7ae6e --- /dev/null +++ b/Tubio/frontend/_nuxt/44d19af.js @@ -0,0 +1,2 @@ +/*! For license information please see LICENSES */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{0:function(t,e,n){"use strict";n.d(e,"k",(function(){return w})),n.d(e,"m",(function(){return v})),n.d(e,"l",(function(){return y})),n.d(e,"e",(function(){return _})),n.d(e,"b",(function(){return $})),n.d(e,"r",(function(){return k})),n.d(e,"g",(function(){return j})),n.d(e,"h",(function(){return O})),n.d(e,"d",(function(){return C})),n.d(e,"q",(function(){return S})),n.d(e,"j",(function(){return E})),n.d(e,"s",(function(){return P})),n.d(e,"n",(function(){return A})),n.d(e,"p",(function(){return N})),n.d(e,"f",(function(){return M})),n.d(e,"c",(function(){return I})),n.d(e,"i",(function(){return L})),n.d(e,"o",(function(){return U})),n.d(e,"a",(function(){return H})),n.d(e,"t",(function(){return J}));n(31),n(38),n(39),n(126),n(56),n(40),n(42),n(74),n(188),n(189),n(58),n(190),n(35),n(30),n(107),n(108),n(75),n(16),n(192),n(34),n(33),n(193),n(101),n(43),n(194),n(63),n(196),n(109),n(150),n(44),n(45);var r=n(61),o=n(47),c=(n(59),n(6)),d=n(46),l=n(1);function f(object,t){var e=Object.keys(object);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(object);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(object,t).enumerable}))),e.push.apply(e,n)}return e}function h(t){for(var i=1;i=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,c=!0,d=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return c=t.done,t},e:function(t){d=!0,o=t},f:function(){try{c||null==n.return||n.return()}finally{if(d)throw o}}}}function x(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i1&&void 0!==arguments[1]?arguments[1]:[],r=t.$children||[],o=m(r);try{for(o.s();!(e=o.n()).done;){var c=e.value;c.$fetch?n.push(c):c.$children&&_(c,n)}}catch(t){o.e(t)}finally{o.f()}return n}function $(t,e){if(e||!t.options.__hasNuxtData){var n=t.options._originDataFn||t.options.data||function(){return{}};t.options._originDataFn=n,t.options.data=function(){var data=n.call(this,this);return this.$ssrContext&&(e=this.$ssrContext.asyncData[t.cid]),h(h({},data),e)},t.options.__hasNuxtData=!0,t._Ctor&&t._Ctor.options&&(t._Ctor.options.data=t.options.data)}}function k(t){return t.options&&t._Ctor===t||(t.options?(t._Ctor=t,t.extendOptions=t.options):(t=l.a.extend(t))._Ctor=t,!t.options.name&&t.options.__file&&(t.options.name=t.options.__file)),t}function j(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"components";return Array.prototype.concat.apply([],t.matched.map((function(t,r){return Object.keys(t[n]).map((function(o){return e&&e.push(r),t[n][o]}))})))}function O(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return j(t,e,"instances")}function C(t,e){return Array.prototype.concat.apply([],t.matched.map((function(t,n){return Object.keys(t.components).reduce((function(r,o){return t.components[o]?r.push(e(t.components[o],t.instances[o],t,o,n)):delete t.components[o],r}),[])})))}function S(t,e){return Promise.all(C(t,function(){var t=Object(c.a)(regeneratorRuntime.mark((function t(n,r,o,c){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("function"!=typeof n||n.options){t.next=4;break}return t.next=3,n();case 3:n=t.sent;case 4:return o.components[c]=n=k(n),t.abrupt("return","function"==typeof e?e(n,r,o,c):n);case 6:case"end":return t.stop()}}),t)})));return function(e,n,r,o){return t.apply(this,arguments)}}()))}function E(t){return R.apply(this,arguments)}function R(){return(R=Object(c.a)(regeneratorRuntime.mark((function t(e){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,S(e);case 4:return t.abrupt("return",h(h({},e),{},{meta:j(e).map((function(t,n){return h(h({},t.options.meta),(e.matched[n]||{}).meta)}))}));case 5:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function P(t,e){return T.apply(this,arguments)}function T(){return(T=Object(c.a)(regeneratorRuntime.mark((function t(e,n){var c,d,l,f;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.context||(e.context={isStatic:!0,isDev:!1,isHMR:!1,app:e,store:e.store,payload:n.payload,error:n.error,base:"/",env:{}},n.ssrContext&&(e.context.ssrContext=n.ssrContext),e.context.redirect=function(t,path,n){if(t){e.context._redirected=!0;var r=Object(o.a)(path);if("number"==typeof t||"undefined"!==r&&"object"!==r||(n=path||{},path=t,r=Object(o.a)(path),t=302),"object"===r&&(path=e.router.resolve(path).route.fullPath),!/(^[.]{1,2}\/)|(^\/(?!\/))/.test(path))throw path=K(path,n),window.location.replace(path),new Error("ERR_REDIRECT");e.context.next({path:path,query:n,status:t})}},e.context.nuxtState=window.__NUXT__),t.next=3,Promise.all([E(n.route),E(n.from)]);case 3:c=t.sent,d=Object(r.a)(c,2),l=d[0],f=d[1],n.route&&(e.context.route=l),n.from&&(e.context.from=f),e.context.next=n.next,e.context._redirected=!1,e.context._errored=!1,e.context.isHMR=!1,e.context.params=e.context.route.params||{},e.context.query=e.context.route.query||{};case 15:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function A(t,e){return!t.length||e._redirected||e._errored?Promise.resolve():N(t[0],e).then((function(){return A(t.slice(1),e)}))}function N(t,e){var n;return(n=2===t.length?new Promise((function(n){t(e,(function(t,data){t&&e.error(t),n(data=data||{})}))})):t(e))&&n instanceof Promise&&"function"==typeof n.then?n:Promise.resolve(n)}function M(base,t){var path=decodeURI(window.location.pathname);return"hash"===t?window.location.hash.replace(/^#\//,""):(base&&(path.endsWith("/")?path:path+"/").startsWith(base)&&(path=path.slice(base.length)),(path||"/")+window.location.search+window.location.hash)}function I(t,e){return function(t,e){for(var n=new Array(t.length),i=0;i0?d.map((function(){return t(!1)})):t(!1))}};t.exports=r},160:function(t,e,n){"use strict";e.a=function(t,e){return e=e||{},new Promise((function(n,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(JSON.parse(s.responseText))},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(t){return i[t.toLowerCase()]},has:function(t){return t.toLowerCase()in i}}}};for(var c in s.open(e.method||"get",t,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(t,e,n){o.push(e=e.toLowerCase()),u.push([e,n]),i[e]=i[e]?i[e]+","+n:n})),n(a())},s.onerror=r,s.withCredentials="include"==e.credentials,e.headers)s.setRequestHeader(c,e.headers[c]);s.send(e.body||null)}))}},162:function(t,e,n){"use strict";var r=function(t){return function(t){return!!t&&"object"==typeof t}(t)&&!function(t){var e=Object.prototype.toString.call(t);return"[object RegExp]"===e||"[object Date]"===e||function(t){return t.$$typeof===o}(t)}(t)};var o="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function c(t,e){return!1!==e.clone&&e.isMergeableObject(t)?m((n=t,Array.isArray(n)?[]:{}),t,e):t;var n}function d(t,source,e){return t.concat(source).map((function(element){return c(element,e)}))}function l(t){return Object.keys(t).concat(function(t){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter((function(symbol){return t.propertyIsEnumerable(symbol)})):[]}(t))}function f(object,t){try{return t in object}catch(t){return!1}}function h(t,source,e){var n={};return e.isMergeableObject(t)&&l(t).forEach((function(r){n[r]=c(t[r],e)})),l(source).forEach((function(r){(function(t,e){return f(t,e)&&!(Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))})(t,r)||(f(t,r)&&e.isMergeableObject(source[r])?n[r]=function(t,e){if(!e.customMerge)return m;var n=e.customMerge(t);return"function"==typeof n?n:m}(r,e)(t[r],source[r],e):n[r]=c(source[r],e))})),n}function m(t,source,e){(e=e||{}).arrayMerge=e.arrayMerge||d,e.isMergeableObject=e.isMergeableObject||r,e.cloneUnlessOtherwiseSpecified=c;var n=Array.isArray(source);return n===Array.isArray(t)?n?e.arrayMerge(t,source,e):h(t,source,e):c(source,e)}m.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce((function(t,n){return m(t,n,e)}),{})};var x=m;t.exports=x},163:function(t,e,n){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t){return null!==t&&"object"===r(t)&&!Array.isArray(t)}function c(t,e){if(!o(t))return c({},e);if(!o(e))return c(t,{});var n=Object.assign({},e);for(var r in t)if("__proto__"!==r&&"constructor"!==r){var d=t[r];null!==d&&(o(d)&&o(n[r])?n[r]=c(d,n[r]):n[r]=d)}return n}t.exports=function(){for(var t=arguments.length,e=new Array(t),n=0;n0)){t.next=19;break}return t.next=19,new Promise((function(t){return setTimeout(t,r)}));case 19:this.$fetchState.error=e,this.$fetchState.pending=!1,this.$fetchState.timestamp=Date.now(),this.$nextTick((function(){return o.$nuxt.nbFetching--}));case 23:case"end":return t.stop()}}),t,this,[[6,11]])})))).apply(this,arguments)}e.a={beforeCreate:function(){Object(c.l)(this)&&(this._fetchDelay="number"==typeof this.$options.fetchDelay?this.$options.fetchDelay:200,o.a.util.defineReactive(this,"$fetchState",{pending:!1,error:null,timestamp:Date.now()}),this.$fetch=m.bind(this),Object(c.a)(this,"created",f),Object(c.a)(this,"beforeMount",l))}}},168:function(t,e,n){(function(t){t.installComponents=function(component,t){const e="function"==typeof component.exports?component.exports.extendOptions:component.options;for(var i in"function"==typeof component.exports&&(e.components=component.exports.options.components),e.components=e.components||{},t)e.components[i]=e.components[i]||t[i];e.functional&&function(component,t){if(component.exports._functionalComponents)return;component.exports._functionalComponents=!0;const e=component.exports.render;component.exports.render=function(n,r){return e(n,Object.assign({},r,{_c:function(e,a,b){return r._c(t[e]||e,a,b)}}))}}(component,e.components)}}).call(this,n(28))},169:function(t,e,n){"use strict";n.r(e),function(t){n(31),n(38),n(39),n(126),n(56),n(40),n(42),n(74),n(58),n(35),n(134),n(30),n(75),n(16),n(34),n(33),n(101),n(43),n(166),n(44),n(45),n(49);var e=n(47),r=(n(59),n(6)),o=(n(142),n(178),n(185),n(187),n(1)),c=n(160),d=n(112),l=n(0),f=n(27),h=n(164),m=n(85);n(242);function x(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return w(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,c=!0,d=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return c=t.done,t},e:function(t){d=!0,o=t},f:function(){try{c||null==n.return||n.return()}finally{if(d)throw o}}}}function w(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i2?e-2:0),r=2;re.parts.length&&(n.parts.length=e.parts.length)}else{var o=[];for(r=0;r1&&void 0!==arguments[1]?arguments[1]:y,n=arguments.length>2?arguments[2]:void 0;return _.call(this,t,e,n)},c.a.use(w.a);var $={mode:"history",base:decodeURI("/"),linkActiveClass:"nuxt-link-active",linkExactActiveClass:"nuxt-link-exact-active",scrollBehavior:function(t,e,n){var r=!1,o=Object(v.g)(t);(o.some((function(t){return t.options.scrollToTop}))||o.length<2&&o.every((function(t){return!1!==t.options.scrollToTop})))&&(r={x:0,y:0}),n&&(r=n);var c=window.$nuxt;return(t.path===e.path&&t.hash!==e.hash||t===e)&&c.$nextTick((function(){return c.$emit("triggerScroll")})),new Promise((function(e){c.$once("triggerScroll",(function(){if(t.hash){var n=t.hash;void 0!==window.CSS&&void 0!==window.CSS.escape&&(n="#"+window.CSS.escape(n.substr(1)));try{document.querySelector(n)&&(r={selector:n})}catch(t){console.warn("Failed to save scroll position. Please add CSS.escape() polyfill (https://github.com/mathiasbynens/CSS.escape).")}}e(r)}))}))},routes:[{path:"/settings",component:function(){return Object(v.m)(n.e(3).then(n.bind(null,274)))},name:"settings"},{path:"/",component:function(){return Object(v.m)(n.e(2).then(n.bind(null,273)))},name:"index"}],fallback:!1};function k(){return new w.a($)}var j={name:"NuxtChild",functional:!0,props:{nuxtChildKey:{type:String,default:""},keepAlive:Boolean,keepAliveProps:{type:Object,default:void 0}},render:function(t,e){var n=e.parent,data=e.data,r=e.props,o=n.$createElement;data.nuxtChild=!0;for(var c=n,d=n.$nuxt.nuxt.transitions,l=n.$nuxt.nuxt.defaultTransition,f=0;n;)n.$vnode&&n.$vnode.data.nuxtChild&&f++,n=n.$parent;data.nuxtChildDepth=f;var h=d[f]||l,m={};O.forEach((function(t){void 0!==h[t]&&(m[t]=h[t])}));var x={};C.forEach((function(t){"function"==typeof h[t]&&(x[t]=h[t].bind(c))}));var w=x.beforeEnter;if(x.beforeEnter=function(t){if(window.$nuxt.$nextTick((function(){window.$nuxt.$emit("triggerScroll")})),w)return w.call(c,t)},!1===h.css){var v=x.leave;(!v||v.length<2)&&(x.leave=function(t,e){v&&v.call(c,t),c.$nextTick(e)})}var y=o("routerView",data);return r.keepAlive&&(y=o("keep-alive",{props:r.keepAliveProps},[y])),o("transition",{props:m,on:x},[y])}},O=["name","mode","appear","css","type","duration","enterClass","leaveClass","appearClass","enterActiveClass","enterActiveClass","leaveActiveClass","appearActiveClass","enterToClass","leaveToClass","appearToClass"],C=["beforeEnter","enter","afterEnter","enterCancelled","beforeLeave","leave","afterLeave","leaveCancelled","beforeAppear","appear","afterAppear","appearCancelled"],S={name:"NuxtError",props:{error:{type:Object,default:null}},computed:{statusCode:function(){return this.error&&this.error.statusCode||500},message:function(){return this.error.message||"Error"}},head:function(){return{title:this.message,meta:[{name:"viewport",content:"width=device-width,initial-scale=1.0,minimum-scale=1.0"}]}}},E=(n(201),n(9)),R=Object(E.a)(S,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"__nuxt-error-page"},[n("div",{staticClass:"error"},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"90",height:"90",fill:"#DBE1EC",viewBox:"0 0 48 48"}},[n("path",{attrs:{d:"M22 30h4v4h-4zm0-16h4v12h-4zm1.99-10C12.94 4 4 12.95 4 24s8.94 20 19.99 20S44 35.05 44 24 35.04 4 23.99 4zM24 40c-8.84 0-16-7.16-16-16S15.16 8 24 8s16 7.16 16 16-7.16 16-16 16z"}})]),t._v(" "),n("div",{staticClass:"title"},[t._v(t._s(t.message))]),t._v(" "),404===t.statusCode?n("p",{staticClass:"description"},[void 0===t.$route?n("a",{staticClass:"error-link",attrs:{href:"/"}}):n("NuxtLink",{staticClass:"error-link",attrs:{to:"/"}},[t._v("Back to the home page")])],1):t._e(),t._v(" "),t._m(0)])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"logo"},[e("a",{attrs:{href:"https://nuxtjs.org",target:"_blank",rel:"noopener"}},[this._v("Nuxt.js")])])}],!1,null,null,null).exports,P=(n(34),n(33),n(63),n(61)),T={name:"Nuxt",components:{NuxtChild:j,NuxtError:R},props:{nuxtChildKey:{type:String,default:void 0},keepAlive:Boolean,keepAliveProps:{type:Object,default:void 0},name:{type:String,default:"default"}},errorCaptured:function(t){this.displayingNuxtError&&(this.errorFromNuxtError=t,this.$forceUpdate())},computed:{routerViewKey:function(){if(void 0!==this.nuxtChildKey||this.$route.matched.length>1)return this.nuxtChildKey||Object(v.c)(this.$route.matched[0].path)(this.$route.params);var t=Object(P.a)(this.$route.matched,1)[0];if(!t)return this.$route.path;var e=t.components.default;if(e&&e.options){var n=e.options;if(n.key)return"function"==typeof n.key?n.key(this.$route):n.key}return/\/$/.test(t.path)?this.$route.path:this.$route.path.replace(/\/$/,"")}},beforeCreate:function(){c.a.util.defineReactive(this,"nuxt",this.$root.$options.nuxt)},render:function(t){var e=this;return this.nuxt.err?this.errorFromNuxtError?(this.$nextTick((function(){return e.errorFromNuxtError=!1})),t("div",{},[t("h2","An error occurred while showing the error page"),t("p","Unfortunately an error occurred and while showing the error page another error occurred"),t("p","Error details: ".concat(this.errorFromNuxtError.toString())),t("nuxt-link",{props:{to:"/"}},"Go back to home")])):(this.displayingNuxtError=!0,this.$nextTick((function(){return e.displayingNuxtError=!1})),t(R,{props:{error:this.nuxt.err}})):t("NuxtChild",{key:this.routerViewKey,props:this.$props})}},A=(n(38),n(39),n(42),n(35),n(43),n(109),n(150),n(45),n(49),{name:"NuxtLoading",data:function(){return{percent:0,show:!1,canSucceed:!0,reversed:!1,skipTimerCount:0,rtl:!1,throttle:200,duration:5e3,continuous:!1}},computed:{left:function(){return!(!this.continuous&&!this.rtl)&&(this.rtl?this.reversed?"0px":"auto":this.reversed?"auto":"0px")}},beforeDestroy:function(){this.clear()},methods:{clear:function(){clearInterval(this._timer),clearTimeout(this._throttle),this._timer=null},start:function(){var t=this;return this.clear(),this.percent=0,this.reversed=!1,this.skipTimerCount=0,this.canSucceed=!0,this.throttle?this._throttle=setTimeout((function(){return t.startTimer()}),this.throttle):this.startTimer(),this},set:function(t){return this.show=!0,this.canSucceed=!0,this.percent=Math.min(100,Math.max(0,Math.floor(t))),this},get:function(){return this.percent},increase:function(t){return this.percent=Math.min(100,Math.floor(this.percent+t)),this},decrease:function(t){return this.percent=Math.max(0,Math.floor(this.percent-t)),this},pause:function(){return clearInterval(this._timer),this},resume:function(){return this.startTimer(),this},finish:function(){return this.percent=this.reversed?0:100,this.hide(),this},hide:function(){var t=this;return this.clear(),setTimeout((function(){t.show=!1,t.$nextTick((function(){t.percent=0,t.reversed=!1}))}),500),this},fail:function(t){return this.canSucceed=!1,this},startTimer:function(){var t=this;this.show||(this.show=!0),void 0===this._cut&&(this._cut=1e4/Math.floor(this.duration)),this._timer=setInterval((function(){t.skipTimerCount>0?t.skipTimerCount--:(t.reversed?t.decrease(t._cut):t.increase(t._cut),t.continuous&&(t.percent>=100||t.percent<=0)&&(t.skipTimerCount=1,t.reversed=!t.reversed))}),100)}},render:function(t){var e=t(!1);return this.show&&(e=t("div",{staticClass:"nuxt-progress",class:{"nuxt-progress-notransition":this.skipTimerCount>0,"nuxt-progress-failed":!this.canSucceed},style:{width:this.percent+"%",left:this.left}})),e}}),N=(n(203),Object(E.a)(A,void 0,void 0,!1,null,null,null).exports),M=(n(205),n(207),n(209),n(211),n(165));function I(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return L(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return L(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,c=!0,d=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return c=t.done,t},e:function(t){d=!0,o=t},f:function(){try{c||null==n.return||n.return()}finally{if(d)throw o}}}}function L(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i0},isPreview:function(){return Boolean(this.$options.previewData)}},methods:{refreshOnlineStatus:function(){void 0===window.navigator.onLine?this.isOnline=!0:this.isOnline=window.navigator.onLine},refresh:function(){var t=this;return Object(r.a)(regeneratorRuntime.mark((function e(){var n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n=Object(v.h)(t.$route)).length){e.next=3;break}return e.abrupt("return");case 3:return t.$loading.start(),r=n.map((function(e){var p=[];if(e.$options.fetch&&e.$options.fetch.length&&p.push(Object(v.p)(e.$options.fetch,t.context)),e.$fetch)p.push(e.$fetch());else{var n,r=I(Object(v.e)(e.$vnode.componentInstance));try{for(r.s();!(n=r.n()).done;){var component=n.value;p.push(component.$fetch())}}catch(t){r.e(t)}finally{r.f()}}return e.$options.asyncData&&p.push(Object(v.p)(e.$options.asyncData,t.context).then((function(t){for(var n in t)c.a.set(e.$data,n,t[n])}))),Promise.all(p)})),e.prev=5,e.next=8,Promise.all(r);case 8:e.next=15;break;case 10:e.prev=10,e.t0=e.catch(5),t.$loading.fail(e.t0),Object(v.k)(e.t0),t.error(e.t0);case 15:t.$loading.finish();case 16:case"end":return e.stop()}}),e,null,[[5,10]])})))()},errorChanged:function(){if(this.nuxt.err){this.$loading&&(this.$loading.fail&&this.$loading.fail(this.nuxt.err),this.$loading.finish&&this.$loading.finish());var t=(R.options||R).layout;"function"==typeof t&&(t=t(this.context)),this.setLayout(t)}},setLayout:function(t){return t&&U["_"+t]||(t="default"),this.layoutName=t,this.layout=U["_"+t],this.layout},loadLayout:function(t){return t&&U["_"+t]||(t="default"),Promise.resolve(U["_"+t])},setPagePayload:function(t){this._pagePayload=t,this._payloadFetchIndex=0},fetchPayload:function(t){var e=this;return Object(r.a)(regeneratorRuntime.mark((function n(){var r,base,o,c;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r=window.__NUXT__.staticAssetsBase,(base=(e.$router.options.base||"").replace(/\/+$/,""))&&t.startsWith(base)&&(t=t.substr(base.length)),t=(t.replace(/\/+$/,"")||"/").split("?")[0].split("#")[0],o=Object(v.t)(base,r,t,"payload.js"),n.prev=5,n.next=8,window.__NUXT_IMPORT__(decodeURI(t),encodeURI(o));case 8:return c=n.sent,e.setPagePayload(c),n.abrupt("return",c);case 13:throw n.prev=13,n.t0=n.catch(5),e.setPagePayload(!1),n.t0;case 17:case"end":return n.stop()}}),n,null,[[5,13]])})))()}},components:{NuxtLoading:N}};n(74);function z(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return B(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return B(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,c=!0,d=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return c=t.done,t},e:function(t){d=!0,o=t},f:function(){try{c||null==n.return||n.return()}finally{if(d)throw o}}}}function B(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i2&&void 0!==arguments[2]?arguments[2]:{},r=n.isProperty,o=void 0!==r&&r;if(!e.length||o&&1===e.length)return t;var c=e.shift();return t.modules[c]=t.modules[c]||{},t.modules[c].namespaced=!0,t.modules[c].modules=t.modules[c].modules||{},Y(t.modules[c],e,{isProperty:o})}function Q(t,e,n){e&&("state"===n?t.state=e||t.state:t[n]=Object.assign({},t[n],e))}var W={};for(var V in W)c.a.component(V,W[V]);var G=n(26),Z=n.n(G),tt=n(163),et=n.n(tt);function nt(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return ot(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ot(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,c=!0,d=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return c=t.done,t},e:function(t){d=!0,o=t},f:function(){try{c||null==n.return||n.return()}finally{if(d)throw o}}}}function ot(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i2&&void 0!==arguments[2]?arguments[2]:"common",o=nt(Array.isArray(r)?r:[r]);try{for(o.s();!(n=o.n()).done;){var c=n.value;if(!e)return void delete this.defaults.headers[c][t];this.defaults.headers[c][t]=e}}catch(t){o.e(t)}finally{o.f()}},setToken:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"common",r=t?(e?e+" ":"")+t:null;this.setHeader("Authorization",r,n)},onRequest:function(t){this.interceptors.request.use((function(e){return t(e)||e}))},onResponse:function(t){this.interceptors.response.use((function(e){return t(e)||e}))},onRequestError:function(t){this.interceptors.request.use(void 0,(function(e){return t(e)||Promise.reject(e)}))},onResponseError:function(t){this.interceptors.response.use(void 0,(function(e){return t(e)||Promise.reject(e)}))},onError:function(t){this.onRequestError(t),this.onResponseError(t)},create:function(t){return ut(et()(t,this.defaults))}},at=function(){var t=ct[st];it["$"+t]=function(){return this[t].apply(this,arguments).then((function(t){return t&&t.data}))}},st=0,ct=["request","delete","get","head","options","post","put","patch"];st has been deprecated and will be removed in Nuxt 3, please use instead")),x.a.render(t,e)}})),c.a.component(j.name,j),c.a.component("NChild",j),c.a.component(T.name,T),c.a.use(l.a,{keyName:"head",attribute:"data-n-head",ssrAttribute:"data-n-head-ssr",tagIDKeyName:"hid"});var mt={name:"page",mode:"out-in",appear:!1,appearClass:"appear",appearActiveClass:"appear-active",appearToClass:"appear-to"},xt=d.a.Store.prototype.registerModule,bt={preserveState:!0};function gt(path,t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return xt.call(this,path,t,ht(ht({},bt),e))}function wt(t){return vt.apply(this,arguments)}function vt(){return(vt=Object(r.a)(regeneratorRuntime.mark((function t(e){var n,r,o,d,l,f,path,h,m=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return h=function(t,e){if(!t)throw new Error("inject(key, value) has no key provided");if(void 0===e)throw new Error("inject('".concat(t,"', value) has no value provided"));d[t="$"+t]=e,d.context[t]||(d.context[t]=e),o[t]=d[t];var n="__nuxt_"+t+"_installed__";c.a[n]||(c.a[n]=!0,c.a.use((function(){Object.prototype.hasOwnProperty.call(c.a.prototype,t)||Object.defineProperty(c.a.prototype,t,{get:function(){return this.$root.$options[t]}})})))},n=m.length>1&&void 0!==m[1]?m[1]:{},t.next=4,k();case 4:return r=t.sent,(o=K(e)).$router=r,o.registerModule=gt,d=ht({head:{title:"Tubio - Video downloader",meta:[{charset:"utf-8"},{name:"viewport",content:"width=device-width, initial-scale=1"},{hid:"description",name:"description",content:""}],link:[{rel:"icon",type:"image/x-icon",href:"/favicon.ico"}],style:[],script:[]},store:o,router:r,nuxt:{defaultTransition:mt,transitions:[mt],setTransitions:function(t){return Array.isArray(t)||(t=[t]),t=t.map((function(t){return t=t?"string"==typeof t?Object.assign({},mt,{name:t}):Object.assign({},mt,t):mt})),this.$options.nuxt.transitions=t,t},err:null,dateErr:null,error:function(t){t=t||null,d.context._errored=Boolean(t),t=t?Object(v.o)(t):null;var n=d.nuxt;return this&&(n=this.nuxt||this.$options.nuxt),n.dateErr=Date.now(),n.err=t,e&&(e.nuxt.error=t),t}}},D),o.app=d,l=e?e.next:function(t){return d.router.push(t)},e?f=r.resolve(e.url).route:(path=Object(v.f)(r.options.base,r.options.mode),f=r.resolve(path).route),t.next=14,Object(v.s)(d,{store:o,route:f,next:l,error:d.nuxt.error.bind(d),payload:e?e.payload:void 0,req:e?e.req:void 0,res:e?e.res:void 0,beforeRenderFns:e?e.beforeRenderFns:void 0,ssrContext:e});case 14:h("config",n),window.__NUXT__&&window.__NUXT__.state&&o.replaceState(window.__NUXT__.state),d.context.enablePreview=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};d.previewData=Object.assign({},t),h("preview",t)},t.next=20;break;case 20:return t.next=23,ft(d.context,h);case 23:d.context.enablePreview=function(){console.warn("You cannot call enablePreview() outside a plugin.")},t.next=27;break;case 27:return t.abrupt("return",{store:o,app:d,router:r});case 28:case"end":return t.stop()}}),t)})))).apply(this,arguments)}},48:function(t,e,n){"use strict";var r={name:"NoSsr",functional:!0,props:{placeholder:String,placeholderTag:{type:String,default:"div"}},render:function(t,e){var n=e.parent,r=e.slots,o=e.props,c=r(),d=c.default;void 0===d&&(d=[]);var l=c.placeholder;return n._isMounted?d:(n.$once("hook:mounted",(function(){n.$forceUpdate()})),o.placeholderTag&&(o.placeholder||l)?t(o.placeholderTag,{class:["no-ssr-placeholder"]},o.placeholder||l):d.length>0?d.map((function(){return t(!1)})):t(!1))}};t.exports=r},79:function(t,e,n){var content=n(202);"string"==typeof content&&(content=[[t.i,content,""]]),content.locals&&(t.exports=content.locals);(0,n(19).default)("4a1cbb1a",content,!0,{sourceMap:!1})},80:function(t,e,n){var content=n(204);"string"==typeof content&&(content=[[t.i,content,""]]),content.locals&&(t.exports=content.locals);(0,n(19).default)("fa7ff0ca",content,!0,{sourceMap:!1})},85:function(t,e,n){"use strict";n(31),n(38),n(39),n(56),n(40),n(42),n(74),n(58),n(35),n(30),n(16),n(33),n(101),n(43),n(44),n(45),n(49);var r=n(1);function o(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,d=!0,l=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return d=t.done,t},e:function(t){l=!0,o=t},f:function(){try{d||null==n.return||n.return()}finally{if(l)throw o}}}}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);ip[data-v-8392ee72]{width:300px}.option.text>input[data-v-8392ee72]{width:240px;text-align:right;border-radius:5px;font-size:16pt;height:30px;padding-left:.7em;padding-right:.7em}@media(max-width:768px){.option.text>input[data-v-8392ee72]{width:180px}}.option.text.narrow>input[data-v-8392ee72]{width:120px}@media(min-width:1024px){.border-right[data-v-8392ee72]{border-right:1px solid #888}.border-left[data-v-8392ee72]{border-left:1px solid #888}}.button[data-v-8392ee72]{color:#000;font-family:ZillaSlab,serif;font-size:18pt;transition:background-color .2s;max-width:200px}.button[data-v-8392ee72]:hover{background-color:#d40}hr[data-v-8392ee72]{border:none;border-bottom:2px solid #888}",""]),t.exports=e},274:function(t,e,o){"use strict";o.r(e);var r=o(26),l=o.n(r),n=o(255),c=o(256),d=o(244),f={components:{Toggle:n.default,LogBox:c.default,Spacer:d.default},methods:{clearDLCache:function(){var t=this;l.a.post("/api",{request:"clear_download_cache"}).then((function(e){"OK"===e.data.status&&t.$store.dispatch("dlcache/update",t)}))},clearLogs:function(){var t=this;l.a.post("/api",{request:"clear_logs"}).then((function(e){"OK"===e.data.status&&t.$store.dispatch("logs/update",t)}))}}},v=(o(265),o(9)),component=Object(v.a)(f,(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",[o("h1",[t._v("Settings")]),t._v(" "),o("Spacer",{attrs:{height:"2em"}}),t._v(" "),o("div",{staticClass:"flex-col w-full"},[o("div",{staticClass:"flex flex-col lg:flex-row justify-content-start w-full"},[o("div",{staticClass:"w-full lg:w-1/2 border-right lg:pr-3"},[o("div",{staticClass:"option toggle flex justify-between items-center"},[o("p",[t._v("Show console")]),t._v(" "),o("Toggle",{attrs:{isOn:!1}})],1),t._v(" "),o("div",{staticClass:"option toggle flex justify-between items-center"},[o("p",[t._v("Use account")]),t._v(" "),o("Toggle",{attrs:{isOn:!1}})],1),t._v(" "),t._m(0),t._v(" "),t._m(1),t._v(" "),o("div",{staticClass:"option toggle flex justify-between items-center"},[o("p",[t._v("Limit speed")]),t._v(" "),o("Toggle",{attrs:{isOn:!1}})],1),t._v(" "),t._m(2),t._v(" "),t._m(3)]),t._v(" "),o("div",{staticClass:"w-full lg:w-1/2 border-left lg:pl-3 mt-6 lg:mt-0"},[t._m(4),t._v(" "),o("Spacer",{attrs:{height:"50px"}}),t._v(" "),o("div",{staticClass:"button",on:{click:t.clearDLCache}},[t._v("Clear downloads")]),t._v(" "),o("div",{staticClass:"button mt-2",on:{click:t.clearLogs}},[t._v("Clear logs")])],1)]),t._v(" "),o("hr",{staticClass:"mt-6 lg:mt-2"}),t._v(" "),o("div",{staticClass:"pt-6"},[o("h2",{staticClass:"mb-4"},[t._v("Logs")]),t._v(" "),o("LogBox")],1)])],1)}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"option text flex justify-between w-full items-center"},[e("p",{staticClass:"mr-3"},[this._v("Username")]),this._v(" "),e("input",{attrs:{type:"text",id:"username",name:"username"}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"option text flex justify-between w-full items-center"},[e("p",{staticClass:"mr-3"},[this._v("Password")]),this._v(" "),e("input",{attrs:{type:"password",id:"password",name:"password"}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"option text narrow flex justify-between w-full items-center"},[e("p",{staticClass:"mr-3"},[this._v("Max speed")]),this._v(" "),e("input",{attrs:{type:"text",id:"max_speed",name:"max_speed",placeholder:"100M"}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"option text narrow flex justify-between w-full items-center"},[e("p",{staticClass:"mr-3"},[this._v("Download threads")]),this._v(" "),e("input",{attrs:{type:"text",id:"max_threads",name:"max_threads",placeholder:"10"}})])},function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{staticClass:"disk-usage"},[o("h2",[t._v("Disk usage")]),t._v(" "),o("div",{staticClass:"disk-usage__entry flex"},[o("p",{staticClass:"mr-3"},[t._v("Downloads: ")]),t._v(" "),o("p",[t._v("759 mb")])]),t._v(" "),o("div",{staticClass:"disk-usage__entry flex"},[o("p",{staticClass:"mr-3"},[t._v("Logs: ")]),t._v(" "),o("p",[t._v("9 mb")])]),t._v(" "),o("div",{staticClass:"disk-usage__entry flex"},[o("p",{staticClass:"mr-3"},[t._v("Dependencies: ")]),t._v(" "),o("p",[t._v("312 mb")])]),t._v(" "),o("div",{staticClass:"disk-usage__entry flex"},[o("p",{staticClass:"mr-3"},[t._v("Misc: ")]),t._v(" "),o("p",[t._v("3 mb")])]),t._v(" "),o("div",{staticClass:"disk-usage__entry flex"},[o("p",{staticClass:"mr-3"},[t._v("Total: ")]),t._v(" "),o("p",[t._v("1567 mb")])])])}],!1,null,"8392ee72",null);e.default=component.exports;installComponents(component,{Spacer:o(244).default,Toggle:o(255).default,LogBox:o(256).default})}}]); \ No newline at end of file diff --git a/Tubio/frontend/_nuxt/9ba7375.js b/Tubio/frontend/_nuxt/9ba7375.js new file mode 100644 index 0000000..0410923 --- /dev/null +++ b/Tubio/frontend/_nuxt/9ba7375.js @@ -0,0 +1,2 @@ +/*! For license information please see LICENSES */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],[,function(t,e,n){"use strict";(function(t,n){var r=Object.freeze({});function o(t){return null==t}function c(t){return null!=t}function f(t){return!0===t}function l(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function d(t){return null!==t&&"object"==typeof t}var h=Object.prototype.toString;function v(t){return"[object Object]"===h.call(t)}function y(t){return"[object RegExp]"===h.call(t)}function m(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function _(t){return c(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function w(t){return null==t?"":Array.isArray(t)||v(t)&&t.toString===h?JSON.stringify(t,null,2):String(t)}function x(t){var e=parseFloat(t);return isNaN(e)?t:e}function S(t,e){for(var map=Object.create(null),n=t.split(","),i=0;i-1)return t.splice(n,1)}}var E=Object.prototype.hasOwnProperty;function C(t,e){return E.call(t,e)}function k(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var $=/-(\w)/g,j=k((function(t){return t.replace($,(function(t,e){return e?e.toUpperCase():""}))})),T=k((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),I=/\B([A-Z])/g,N=k((function(t){return t.replace(I,"-$1").toLowerCase()}));var P=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(a){var n=arguments.length;return n?n>1?t.apply(e,arguments):t.call(e,a):t.call(e)}return n._length=t.length,n};function M(t,e){e=e||0;for(var i=t.length-e,n=new Array(i);i--;)n[i]=t[i+e];return n}function R(t,e){for(var n in e)t[n]=e[n];return t}function L(t){for(var e={},i=0;i0,at=nt&&nt.indexOf("edge/")>0,st=(nt&&nt.indexOf("android"),nt&&/iphone|ipad|ipod|ios/.test(nt)||"ios"===et),ct=(nt&&/chrome\/\d+/.test(nt),nt&&/phantomjs/.test(nt),nt&&nt.match(/firefox\/(\d+)/)),ut={}.watch,ft=!1;if(Z)try{var lt={};Object.defineProperty(lt,"passive",{get:function(){ft=!0}}),window.addEventListener("test-passive",null,lt)}catch(t){}var pt=function(){return void 0===Y&&(Y=!Z&&!tt&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),Y},ht=Z&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function vt(t){return"function"==typeof t&&/native code/.test(t.toString())}var yt,mt="undefined"!=typeof Symbol&&vt(Symbol)&&"undefined"!=typeof Reflect&&vt(Reflect.ownKeys);yt="undefined"!=typeof Set&&vt(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var gt=D,bt=0,_t=function(){this.id=bt++,this.subs=[]};_t.prototype.addSub=function(sub){this.subs.push(sub)},_t.prototype.removeSub=function(sub){A(this.subs,sub)},_t.prototype.depend=function(){_t.target&&_t.target.addDep(this)},_t.prototype.notify=function(){var t=this.subs.slice();for(var i=0,e=t.length;i-1)if(c&&!C(o,"default"))f=!1;else if(""===f||f===N(t)){var d=Jt(String,o.type);(d<0||l0&&(ge((r=t(r,(n||"")+"_"+i))[0])&&ge(h)&&(v[d]=Ct(h.text+r[0].text),r.shift()),v.push.apply(v,r)):l(r)?ge(h)?v[d]=Ct(h.text+r):""!==r&&v.push(Ct(r)):ge(r)&&ge(h)?v[d]=Ct(h.text+r.text):(f(e._isVList)&&c(r.tag)&&o(r.key)&&c(n)&&(r.key="__vlist"+n+"_"+i+"__"),v.push(r)));return v}(t):void 0}function ge(t){return c(t)&&c(t.text)&&!1===t.isComment}function be(t,e){if(t){for(var n=Object.create(null),r=mt?Reflect.ownKeys(t):Object.keys(t),i=0;i0,f=t?!!t.$stable:!c,l=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(f&&n&&n!==r&&l===n.$key&&!c&&!n.$hasNormal)return n;for(var d in o={},t)t[d]&&"$"!==d[0]&&(o[d]=Se(e,d,t[d]))}else o={};for(var h in e)h in o||(o[h]=Oe(e,h));return t&&Object.isExtensible(t)&&(t._normalized=o),X(o,"$stable",f),X(o,"$key",l),X(o,"$hasNormal",c),o}function Se(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:me(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function Oe(t,e){return function(){return t[e]}}function Ae(t,e){var n,i,r,o,f;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),i=0,r=t.length;idocument.createEvent("Event").timeStamp&&(yn=function(){return mn.now()})}function gn(){var t,e;for(vn=yn(),dn=!0,un.sort((function(a,b){return a.id-b.id})),hn=0;hnhn&&un[i].id>t.id;)i--;un.splice(i+1,0,t)}else un.push(t);pn||(pn=!0,ue(gn))}}(this)},_n.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||d(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Yt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},_n.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},_n.prototype.depend=function(){for(var i=this.deps.length;i--;)this.deps[i].depend()},_n.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||A(this.vm._watchers,this);for(var i=this.deps.length;i--;)this.deps[i].removeSub(this);this.active=!1}};var wn={enumerable:!0,configurable:!0,get:D,set:D};function xn(t,e,n){wn.get=function(){return this[e][n]},wn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,wn)}function Sn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[];t.$parent&&Nt(!1);var c=function(c){o.push(c);var f=Kt(c,e,n,t);Rt(r,c,f),c in t||xn(t,"_props",c)};for(var f in e)c(f);Nt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?D:P(e[n],t)}(t,e.methods),e.data?function(t){var data=t.$options.data;v(data=t._data="function"==typeof data?function(data,t){xt();try{return data.call(t,t)}catch(e){return Yt(e,t,"data()"),{}}finally{St()}}(data,t):data||{})||(data={});var e=Object.keys(data),n=t.$options.props,i=(t.$options.methods,e.length);for(;i--;){var r=e[i];0,n&&C(n,r)||(o=void 0,36!==(o=(r+"").charCodeAt(0))&&95!==o&&xn(t,"_data",r))}var o;Mt(data,!0)}(t):Mt(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=pt();for(var o in e){var c=e[o],f="function"==typeof c?c:c.get;0,r||(n[o]=new _n(t,f||D,D,On)),o in t||An(t,o,c)}}(t,e.computed),e.watch&&e.watch!==ut&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var i=0;i-1:"string"==typeof pattern?pattern.split(",").indexOf(t)>-1:!!y(pattern)&&pattern.test(t)}function Mn(t,filter){var e=t.cache,n=t.keys,r=t._vnode;for(var o in e){var c=e[o];if(c){var f=Nn(c.componentOptions);f&&!filter(f)&&Rn(e,o,n,r)}}}function Rn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,A(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=$n++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=zt(jn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&nn(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=_e(e._renderChildren,o),t.$scopedSlots=r,t._c=function(a,b,e,n){return Ke(t,a,b,e,n,!1)},t.$createElement=function(a,b,e,n){return Ke(t,a,b,e,n,!0)};var c=n&&n.data;Rt(t,"$attrs",c&&c.attrs||r,null,!0),Rt(t,"$listeners",e._parentListeners||r,null,!0)}(e),cn(e,"beforeCreate"),function(t){var e=be(t.$options.inject,t);e&&(Nt(!1),Object.keys(e).forEach((function(n){Rt(t,n,e[n])})),Nt(!0))}(e),Sn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),cn(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(Tn),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Lt,t.prototype.$delete=del,t.prototype.$watch=function(t,e,n){if(v(e))return kn(this,t,e,n);(n=n||{}).user=!0;var r=new _n(this,t,e,n);if(n.immediate)try{e.call(this,r.value)}catch(t){Yt(t,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(Tn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var i=0,o=t.length;i1?M(n):n;for(var r=M(arguments,1),o='event handler for "'+t+'"',i=0,c=n.length;iparseInt(this.max)&&Rn(c,f[0],f,this._vnode)),t.data.keepAlive=!0}return t||slot&&slot[0]}}};!function(t){var e={get:function(){return K}};Object.defineProperty(t,"config",e),t.util={warn:gt,extend:R,mergeOptions:zt,defineReactive:Rt},t.set=Lt,t.delete=del,t.nextTick=ue,t.observable=function(t){return Mt(t),t},t.options=Object.create(null),z.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,R(t.options.components,Dn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=M(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=zt(this.options,t),this}}(t),In(t),function(t){z.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&v(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Tn),Object.defineProperty(Tn.prototype,"$isServer",{get:pt}),Object.defineProperty(Tn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Tn,"FunctionalRenderContext",{value:Ue}),Tn.version="2.6.12";var Fn=S("style,class"),Un=S("input,textarea,option,select,progress"),Bn=S("contenteditable,draggable,spellcheck"),Vn=S("events,caret,typing,plaintext-only"),Hn=S("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),qn="http://www.w3.org/1999/xlink",zn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Gn=function(t){return zn(t)?t.slice(6,t.length):""},Kn=function(t){return null==t||!1===t};function Wn(t){for(var data=t.data,e=t,n=t;c(n.componentInstance);)(n=n.componentInstance._vnode)&&n.data&&(data=Xn(n.data,data));for(;c(e=e.parent);)e&&e.data&&(data=Xn(data,e.data));return function(t,e){if(c(t)||c(e))return Jn(t,Yn(e));return""}(data.staticClass,data.class)}function Xn(t,e){return{staticClass:Jn(t.staticClass,e.staticClass),class:c(t.class)?[t.class,e.class]:e.class}}function Jn(a,b){return a?b?a+" "+b:a:b||""}function Yn(t){return Array.isArray(t)?function(t){for(var e,n="",i=0,r=t.length;i-1?Sr(t,e,n):Hn(e)?Kn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Bn(e)?t.setAttribute(e,function(t,e){return Kn(e)||"false"===e?"false":"contenteditable"===t&&Vn(e)?e:"true"}(e,n)):zn(e)?Kn(n)?t.removeAttributeNS(qn,Gn(e)):t.setAttributeNS(qn,e,n):Sr(t,e,n)}function Sr(t,e,n){if(Kn(n))t.removeAttribute(e);else{if(ot&&!it&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Or={create:wr,update:wr};function Ar(t,e){var n=e.elm,data=e.data,r=t.data;if(!(o(data.staticClass)&&o(data.class)&&(o(r)||o(r.staticClass)&&o(r.class)))){var f=Wn(e),l=n._transitionClasses;c(l)&&(f=Jn(f,Yn(l))),f!==n._prevClass&&(n.setAttribute("class",f),n._prevClass=f)}}var Er,Cr={create:Ar,update:Ar};function kr(t,e,n){var r=Er;return function o(){var c=e.apply(null,arguments);null!==c&&Tr(t,o,n,r)}}var $r=ne&&!(ct&&Number(ct[1])<=53);function jr(t,e,n,r){if($r){var o=vn,c=e;e=c._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return c.apply(this,arguments)}}Er.addEventListener(t,e,ft?{capture:n,passive:r}:n)}function Tr(t,e,n,r){(r||Er).removeEventListener(t,e._wrapper||e,n)}function Ir(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Er=e.elm,function(t){if(c(t.__r)){var e=ot?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}c(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),he(n,r,jr,Tr,kr,e.context),Er=void 0}}var Nr,Pr={create:Ir,update:Ir};function Mr(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,f=e.elm,l=t.data.domProps||{},d=e.data.domProps||{};for(n in c(d.__ob__)&&(d=e.data.domProps=R({},d)),l)n in d||(f[n]="");for(n in d){if(r=d[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===l[n])continue;1===f.childNodes.length&&f.removeChild(f.childNodes[0])}if("value"===n&&"PROGRESS"!==f.tagName){f._value=r;var h=o(r)?"":String(r);Rr(f,h)&&(f.value=h)}else if("innerHTML"===n&&er(f.tagName)&&o(f.innerHTML)){(Nr=Nr||document.createElement("div")).innerHTML=""+r+"";for(var svg=Nr.firstChild;f.firstChild;)f.removeChild(f.firstChild);for(;svg.firstChild;)f.appendChild(svg.firstChild)}else if(r!==l[n])try{f[n]=r}catch(t){}}}}function Rr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(c(r)){if(r.number)return x(n)!==x(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Lr={create:Mr,update:Mr},Dr=k((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function Fr(data){var style=Ur(data.style);return data.staticStyle?R(data.staticStyle,style):style}function Ur(t){return Array.isArray(t)?L(t):"string"==typeof t?Dr(t):t}var Br,Vr=/^--/,Hr=/\s*!important$/,qr=function(t,e,n){if(Vr.test(e))t.style.setProperty(e,n);else if(Hr.test(n))t.style.setProperty(N(e),n.replace(Hr,""),"important");else{var r=Gr(e);if(Array.isArray(n))for(var i=0,o=n.length;i-1?e.split(Wr).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Jr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Wr).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function Yr(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&R(e,Qr(t.name||"v")),R(e,t),e}return"string"==typeof t?Qr(t):void 0}}var Qr=k((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),Zr=Z&&!it,to="transition",eo="transitionend",no="animation",ro="animationend";Zr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(to="WebkitTransition",eo="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(no="WebkitAnimation",ro="webkitAnimationEnd"));var oo=Z?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function io(t){oo((function(){oo(t)}))}function ao(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Xr(t,e))}function so(t,e){t._transitionClasses&&A(t._transitionClasses,e),Jr(t,e)}function co(t,e,n){var r=fo(t,e),o=r.type,c=r.timeout,f=r.propCount;if(!o)return n();var l="transition"===o?eo:ro,d=0,h=function(){t.removeEventListener(l,v),n()},v=function(e){e.target===t&&++d>=f&&h()};setTimeout((function(){d0&&(n="transition",v=f,y=c.length):"animation"===e?h>0&&(n="animation",v=h,y=d.length):y=(n=(v=Math.max(f,h))>0?f>h?"transition":"animation":null)?"transition"===n?c.length:d.length:0,{type:n,timeout:v,propCount:y,hasTransform:"transition"===n&&uo.test(r[to+"Property"])}}function lo(t,e){for(;t.length1}function go(t,e){!0!==e.data.show&&ho(e)}var bo=function(t){var i,e,n={},r=t.modules,d=t.nodeOps;for(i=0;iw?A(t,o(n[O+1])?null:n[O+1].elm,n,_,O,r):_>O&&C(e,m,w)}(m,_,x,r,y):c(x)?(c(t.text)&&d.setTextContent(m,""),A(m,null,x,0,x.length-1,r)):c(_)?C(_,0,_.length-1):c(t.text)&&d.setTextContent(m,""):t.text!==e.text&&d.setTextContent(m,e.text),c(data)&&c(i=data.hook)&&c(i=i.postpatch)&&i(t,e)}}}function T(t,e,n){if(f(n)&&c(t.parent))t.parent.data.pendingInsert=e;else for(var i=0;i-1,option.selected!==c&&(option.selected=c);else if(B(Oo(option),r))return void(t.selectedIndex!==i&&(t.selectedIndex=i));o||(t.selectedIndex=-1)}}function So(t,e){return e.every((function(e){return!B(e,t)}))}function Oo(option){return"_value"in option?option._value:option.value}function Ao(t){t.target.composing=!0}function Eo(t){t.target.composing&&(t.target.composing=!1,Co(t.target,"input"))}function Co(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function ko(t){return!t.componentInstance||t.data&&t.data.transition?t:ko(t.componentInstance._vnode)}var $o={model:_o,show:{bind:function(t,e,n){var r=e.value,o=(n=ko(n)).data&&n.data.transition,c=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,ho(n,(function(){t.style.display=c}))):t.style.display=r?c:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=ko(n)).data&&n.data.transition?(n.data.show=!0,r?ho(n,(function(){t.style.display=t.__vOriginalDisplay})):vo(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},jo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function To(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?To(Qe(e.children)):t}function Io(t){var data={},e=t.$options;for(var n in e.propsData)data[n]=t[n];var r=e._parentListeners;for(var o in r)data[j(o)]=r[o];return data}function No(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Po=function(t){return t.tag||Ye(t)},Mo=function(t){return"show"===t.name},Ro={name:"transition",props:jo,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Po)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var c=To(o);if(!c)return o;if(this._leaving)return No(t,o);var f="__transition-"+this._uid+"-";c.key=null==c.key?c.isComment?f+"comment":f+c.tag:l(c.key)?0===String(c.key).indexOf(f)?c.key:f+c.key:c.key;var data=(c.data||(c.data={})).transition=Io(this),d=this._vnode,h=To(d);if(c.data.directives&&c.data.directives.some(Mo)&&(c.data.show=!0),h&&h.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(c,h)&&!Ye(h)&&(!h.componentInstance||!h.componentInstance._vnode.isComment)){var v=h.data.transition=R({},data);if("out-in"===r)return this._leaving=!0,ve(v,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),No(t,o);if("in-out"===r){if(Ye(c))return d;var y,m=function(){y()};ve(data,"afterEnter",m),ve(data,"enterCancelled",m),ve(v,"delayLeave",(function(t){y=t}))}}return o}}},Lo=R({tag:String,moveClass:String},jo);function Do(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Fo(t){t.data.newPos=t.elm.getBoundingClientRect()}function Uo(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var s=t.elm.style;s.transform=s.WebkitTransform="translate("+r+"px,"+o+"px)",s.transitionDuration="0s"}}delete Lo.mode;var Bo={Transition:Ro,TransitionGroup:{props:Lo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=on(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",map=Object.create(null),n=this.prevChildren=this.children,r=this.$slots.default||[],o=this.children=[],c=Io(this),i=0;i-1?rr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:rr[t]=/HTMLUnknownElement/.test(e.toString())},R(Tn.options.directives,$o),R(Tn.options.components,Bo),Tn.prototype.__patch__=Z?bo:D,Tn.prototype.$mount=function(t,e){return function(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.render=Et),cn(t,"beforeMount"),r=function(){t._update(t._render(),n)},new _n(t,r,D,{before:function(){t._isMounted&&!t._isDestroyed&&cn(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,cn(t,"mounted")),t}(this,t=t&&Z?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},Z&&setTimeout((function(){K.devtools&&ht&&ht.emit("init",Tn)}),0),e.a=Tn}).call(this,n(28),n(198).setImmediate)},function(t,e,n){var r=n(3),o=n(22).f,c=n(21),f=n(17),l=n(89),d=n(116),h=n(66);t.exports=function(t,source){var e,n,v,y,m,_=t.target,w=t.global,x=t.stat;if(e=w?r:x?r[_]||l(_,{}):(r[_]||{}).prototype)for(n in source){if(y=source[n],v=t.noTargetGet?(m=o(e,n))&&m.value:e[n],!h(w?n:_+(x?".":"#")+n,t.forced)&&void 0!==v){if(typeof y==typeof v)continue;d(y,v)}(t.sham||v&&v.sham)&&c(y,"sham",!0),f(e,n,y,t)}}},function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||Function("return this")()}).call(this,n(28))},function(t,e,n){var r=n(3),o=n(91),c=n(11),f=n(92),l=n(96),d=n(121),h=o("wks"),v=r.Symbol,y=d?v:v&&v.withoutSetter||f;t.exports=function(t){return c(h,t)||(l&&c(v,t)?h[t]=v[t]:h[t]=y("Symbol."+t)),h[t]}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){"use strict";function r(t,e,n,r,o,c,f){try{var l=t[c](f),d=l.value}catch(t){return void n(t)}l.done?e(d):Promise.resolve(d).then(r,o)}function o(t){return function(){var e=this,n=arguments;return new Promise((function(o,c){var f=t.apply(e,n);function l(t){r(f,o,c,l,d,"next",t)}function d(t){r(f,o,c,l,d,"throw",t)}l(void 0)}))}}n.d(e,"a",(function(){return o}))},function(t,e,n){var r=n(10);t.exports=function(t){if(!r(t))throw TypeError(String(t)+" is not an object");return t}},function(t,e,n){var r=n(5);t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(t,e,n){"use strict";function r(t,e,n,r,o,c,f,l){var d,h="function"==typeof t?t.options:t;if(e&&(h.render=e,h.staticRenderFns=n,h._compiled=!0),r&&(h.functional=!0),c&&(h._scopeId="data-v-"+c),f?(d=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(f)},h._ssrRegister=d):o&&(d=l?function(){o.call(this,(h.functional?this.parent:this).$root.$options.shadowRoot)}:o),d)if(h.functional){h._injectStyles=d;var v=h.render;h.render=function(t,e){return d.call(e),v(t,e)}}else{var y=h.beforeCreate;h.beforeCreate=y?[].concat(y,d):[d]}return{exports:t,options:h}}n.d(e,"a",(function(){return r}))},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(8),o=n(114),c=n(7),f=n(52),l=Object.defineProperty;e.f=r?l:function(t,e,n){if(c(t),e=f(e,!0),c(n),o)try{return l(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){"use strict";var r=n(152),o=Object.prototype.toString;function c(t){return"[object Array]"===o.call(t)}function f(t){return void 0===t}function l(t){return null!==t&&"object"==typeof t}function d(t){if("[object Object]"!==o.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype}function h(t){return"[object Function]"===o.call(t)}function v(t,e){if(null!=t)if("object"!=typeof t&&(t=[t]),c(t))for(var i=0,n=t.length;i0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(99),o=n(17),c=n(174);r||o(Object.prototype,"toString",c,{unsafe:!0})},function(t,e,n){var r=n(3),o=n(21),c=n(11),f=n(89),l=n(90),d=n(36),h=d.get,v=d.enforce,y=String(String).split("String");(t.exports=function(t,e,n,l){var d=!!l&&!!l.unsafe,h=!!l&&!!l.enumerable,m=!!l&&!!l.noTargetGet;"function"==typeof n&&("string"!=typeof e||c(n,"name")||o(n,"name",e),v(n).source=y.join("string"==typeof e?e:"")),t!==r?(d?!m&&t[e]&&(h=!0):delete t[e],h?t[e]=n:o(t,e,n)):h?t[e]=n:f(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&h(this).source||l(this)}))},,,function(t,e,n){var r=n(51),o=n(14);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(8),o=n(12),c=n(50);t.exports=r?function(object,t,e){return o.f(object,t,c(1,e))}:function(object,t,e){return object[t]=e,object}},function(t,e,n){var r=n(8),o=n(87),c=n(50),f=n(20),l=n(52),d=n(11),h=n(114),v=Object.getOwnPropertyDescriptor;e.f=r?v:function(t,e){if(t=f(t),e=l(e,!0),h)try{return v(t,e)}catch(t){}if(d(t,e))return c(!o.f.call(t,e),t[e])}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(14);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(8),o=n(5),c=n(11),f=Object.defineProperty,l={},d=function(t){throw t};t.exports=function(t,e){if(c(l,t))return l[t];e||(e={});var n=[][t],h=!!c(e,"ACCESSORS")&&e.ACCESSORS,v=c(e,0)?e[0]:d,y=c(e,1)?e[1]:void 0;return l[t]=!!n&&!o((function(){if(h&&!r)return!0;var t={length:-1};h?f(t,1,{enumerable:!0,get:d}):t[1]=1,n.call(t,v,y)}))}},function(t,e,n){t.exports=n(225)},,function(t,e){var g;g=function(){return this}();try{g=g||new Function("return this")()}catch(t){"object"==typeof window&&(g=window)}t.exports=g},function(t,e){t.exports=!1},function(t,e,n){var r=n(8),o=n(12).f,c=Function.prototype,f=c.toString,l=/^\s*function ([^ (]*)/;r&&!("name"in c)&&o(c,"name",{configurable:!0,get:function(){try{return f.call(this).match(l)[1]}catch(t){return""}}})},function(t,e,n){"use strict";var r=n(2),o=n(3),c=n(32),f=n(29),l=n(8),d=n(96),h=n(121),v=n(5),y=n(11),m=n(67),_=n(10),w=n(7),x=n(24),S=n(20),O=n(52),A=n(50),E=n(68),C=n(69),k=n(53),$=n(172),j=n(95),T=n(22),I=n(12),N=n(87),P=n(21),M=n(17),R=n(91),L=n(64),D=n(65),F=n(92),U=n(4),B=n(123),V=n(124),H=n(70),z=n(36),G=n(37).forEach,K=L("hidden"),W=U("toPrimitive"),X=z.set,J=z.getterFor("Symbol"),Y=Object.prototype,Q=o.Symbol,Z=c("JSON","stringify"),tt=T.f,et=I.f,nt=$.f,ot=N.f,it=R("symbols"),at=R("op-symbols"),st=R("string-to-symbol-registry"),ct=R("symbol-to-string-registry"),ut=R("wks"),ft=o.QObject,lt=!ft||!ft.prototype||!ft.prototype.findChild,pt=l&&v((function(){return 7!=E(et({},"a",{get:function(){return et(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=tt(Y,e);r&&delete Y[e],et(t,e,n),r&&t!==Y&&et(Y,e,r)}:et,ht=function(t,e){var symbol=it[t]=E(Q.prototype);return X(symbol,{type:"Symbol",tag:t,description:e}),l||(symbol.description=e),symbol},vt=h?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof Q},yt=function(t,e,n){t===Y&&yt(at,e,n),w(t);var r=O(e,!0);return w(n),y(it,r)?(n.enumerable?(y(t,K)&&t[K][r]&&(t[K][r]=!1),n=E(n,{enumerable:A(0,!1)})):(y(t,K)||et(t,K,A(1,{})),t[K][r]=!0),pt(t,r,n)):et(t,r,n)},mt=function(t,e){w(t);var n=S(e),r=C(n).concat(wt(n));return G(r,(function(e){l&&!gt.call(n,e)||yt(t,e,n[e])})),t},gt=function(t){var e=O(t,!0),n=ot.call(this,e);return!(this===Y&&y(it,e)&&!y(at,e))&&(!(n||!y(this,e)||!y(it,e)||y(this,K)&&this[K][e])||n)},bt=function(t,e){var n=S(t),r=O(e,!0);if(n!==Y||!y(it,r)||y(at,r)){var o=tt(n,r);return!o||!y(it,r)||y(n,K)&&n[K][r]||(o.enumerable=!0),o}},_t=function(t){var e=nt(S(t)),n=[];return G(e,(function(t){y(it,t)||y(D,t)||n.push(t)})),n},wt=function(t){var e=t===Y,n=nt(e?at:S(t)),r=[];return G(n,(function(t){!y(it,t)||e&&!y(Y,t)||r.push(it[t])})),r};(d||(M((Q=function(){if(this instanceof Q)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=F(t),n=function(t){this===Y&&n.call(at,t),y(this,K)&&y(this[K],e)&&(this[K][e]=!1),pt(this,e,A(1,t))};return l&<&&pt(Y,e,{configurable:!0,set:n}),ht(e,t)}).prototype,"toString",(function(){return J(this).tag})),M(Q,"withoutSetter",(function(t){return ht(F(t),t)})),N.f=gt,I.f=yt,T.f=bt,k.f=$.f=_t,j.f=wt,B.f=function(t){return ht(U(t),t)},l&&(et(Q.prototype,"description",{configurable:!0,get:function(){return J(this).description}}),f||M(Y,"propertyIsEnumerable",gt,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!d,sham:!d},{Symbol:Q}),G(C(ut),(function(t){V(t)})),r({target:"Symbol",stat:!0,forced:!d},{for:function(t){var e=String(t);if(y(st,e))return st[e];var symbol=Q(e);return st[e]=symbol,ct[symbol]=e,symbol},keyFor:function(t){if(!vt(t))throw TypeError(t+" is not a symbol");if(y(ct,t))return ct[t]},useSetter:function(){lt=!0},useSimple:function(){lt=!1}}),r({target:"Object",stat:!0,forced:!d,sham:!l},{create:function(t,e){return void 0===e?E(t):mt(E(t),e)},defineProperty:yt,defineProperties:mt,getOwnPropertyDescriptor:bt}),r({target:"Object",stat:!0,forced:!d},{getOwnPropertyNames:_t,getOwnPropertySymbols:wt}),r({target:"Object",stat:!0,forced:v((function(){j.f(1)}))},{getOwnPropertySymbols:function(t){return j.f(x(t))}}),Z)&&r({target:"JSON",stat:!0,forced:!d||v((function(){var symbol=Q();return"[null]"!=Z([symbol])||"{}"!=Z({a:symbol})||"{}"!=Z(Object(symbol))}))},{stringify:function(t,e,n){for(var r,o=[t],c=1;arguments.length>c;)o.push(arguments[c++]);if(r=e,(_(e)||void 0!==t)&&!vt(t))return m(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!vt(e))return e}),o[1]=e,Z.apply(null,o)}});Q.prototype[W]||P(Q.prototype,W,Q.prototype.valueOf),H(Q,"Symbol"),D[K]=!0},function(t,e,n){var path=n(118),r=n(3),o=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?o(path[t])||o(r[t]):path[t]&&path[t][e]||r[t]&&r[t][e]}},function(t,e,n){"use strict";var r=n(17),o=n(7),c=n(5),f=n(100),l=RegExp.prototype,d=l.toString,h=c((function(){return"/a/b"!=d.call({source:"a",flags:"b"})})),v="toString"!=d.name;(h||v)&&r(RegExp.prototype,"toString",(function(){var t=o(this),p=String(t.source),e=t.flags;return"/"+p+"/"+String(void 0===e&&t instanceof RegExp&&!("flags"in l)?f.call(t):e)}),{unsafe:!0})},function(t,e,n){"use strict";var r=n(2),o=n(76);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},function(t,e,n){"use strict";var r=n(2),o=n(10),c=n(67),f=n(120),l=n(15),d=n(20),h=n(72),v=n(4),y=n(73),m=n(25),_=y("slice"),w=m("slice",{ACCESSORS:!0,0:0,1:2}),x=v("species"),S=[].slice,O=Math.max;r({target:"Array",proto:!0,forced:!_||!w},{slice:function(t,e){var n,r,v,y=d(this),m=l(y.length),_=f(t,m),w=f(void 0===e?m:e,m);if(c(y)&&("function"!=typeof(n=y.constructor)||n!==Array&&!c(n.prototype)?o(n)&&null===(n=n[x])&&(n=void 0):n=void 0,n===Array||void 0===n))return S.call(y,_,w);for(r=new(void 0===n?Array:n)(O(w-_,0)),v=0;_j;j++)if((m||j in C)&&(A=k(O=C[j],j,E),t))if(e)I[j]=A;else if(A)switch(t){case 3:return!0;case 5:return O;case 6:return j;case 2:d.call(I,O)}else if(v)return!1;return y?-1:h||v?v:I}};t.exports={forEach:h(0),map:h(1),filter:h(2),some:h(3),every:h(4),find:h(5),findIndex:h(6)}},function(t,e,n){"use strict";var r=n(2),o=n(8),c=n(3),f=n(11),l=n(10),d=n(12).f,h=n(116),v=c.Symbol;if(o&&"function"==typeof v&&(!("description"in v.prototype)||void 0!==v().description)){var y={},m=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof m?new v(t):void 0===t?v():v(t);return""===t&&(y[e]=!0),e};h(m,v);var _=m.prototype=v.prototype;_.constructor=m;var w=_.toString,x="Symbol(test)"==String(v("test")),S=/^Symbol\((.*)\)[^)]+$/;d(_,"description",{configurable:!0,get:function(){var symbol=l(this)?this.valueOf():this,t=w.call(symbol);if(f(y,symbol))return"";var desc=x?t.slice(7,-1):t.replace(S,"$1");return""===desc?void 0:desc}}),r({global:!0,forced:!0},{Symbol:m})}},function(t,e,n){n(124)("iterator")},function(t,e,n){"use strict";var r=n(2),o=n(127);r({target:"Array",proto:!0,forced:[].forEach!=o},{forEach:o})},function(t,e,n){"use strict";var r=n(5);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){throw 1},1)}))}},function(t,e,n){var r=n(2),o=n(173);r({target:"Array",stat:!0,forced:!n(132)((function(t){Array.from(t)}))},{from:o})},function(t,e,n){"use strict";var r=n(136).charAt,o=n(36),c=n(137),f=o.set,l=o.getterFor("String Iterator");c(String,"String",(function(t){f(this,{type:"String Iterator",string:String(t),index:0})}),(function(){var t,e=l(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},function(t,e,n){var r=n(3),o=n(141),c=n(127),f=n(21);for(var l in o){var d=r[l],h=d&&d.prototype;if(h&&h.forEach!==c)try{f(h,"forEach",c)}catch(t){h.forEach=c}}},function(t,e,n){var r=n(3),o=n(141),c=n(142),f=n(21),l=n(4),d=l("iterator"),h=l("toStringTag"),v=c.values;for(var y in o){var m=r[y],_=m&&m.prototype;if(_){if(_[d]!==v)try{f(_,d,v)}catch(t){_[d]=v}if(_[h]||f(_,h,y),o[y])for(var w in c)if(_[w]!==c[w])try{f(_,w,c[w])}catch(t){_[w]=c[w]}}}},function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,"a",(function(){return r}))},function(t,e,n){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}n.d(e,"a",(function(){return r}))},,function(t,e,n){var r=n(2),o=n(3),c=n(98),f=[].slice,l=function(t){return function(e,n){var r=arguments.length>2,o=r?f.call(arguments,2):void 0;return t(r?function(){("function"==typeof e?e:Function(e)).apply(this,o)}:e,n)}};r({global:!0,bind:!0,forced:/MSIE .\./.test(c)},{setTimeout:l(o.setTimeout),setInterval:l(o.setInterval)})},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(5),o=n(23),c="".split;t.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?c.call(t,""):Object(t)}:Object},function(t,e,n){var r=n(10);t.exports=function(input,t){if(!r(input))return input;var e,n;if(t&&"function"==typeof(e=input.toString)&&!r(n=e.call(input)))return n;if("function"==typeof(e=input.valueOf)&&!r(n=e.call(input)))return n;if(!t&&"function"==typeof(e=input.toString)&&!r(n=e.call(input)))return n;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(119),o=n(94).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},function(t,e,n){"use strict";var r=n(2),o=n(37).filter,c=n(73),f=n(25),l=c("filter"),d=f("filter");r({target:"Array",proto:!0,forced:!l||!d},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e){t.exports={}},function(t,e,n){"use strict";var r=n(2),o=n(37).map,c=n(73),f=n(25),l=c("map"),d=f("map");r({target:"Array",proto:!0,forced:!l||!d},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e){!function(e){"use strict";var n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},c=o.iterator||"@@iterator",f=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag",d="object"==typeof t,h=e.regeneratorRuntime;if(h)d&&(t.exports=h);else{(h=e.regeneratorRuntime=d?t.exports:{}).wrap=x;var v={},y={};y[c]=function(){return this};var m=Object.getPrototypeOf,_=m&&m(m(N([])));_&&_!==n&&r.call(_,c)&&(y=_);var w=E.prototype=O.prototype=Object.create(y);A.prototype=w.constructor=E,E.constructor=A,E[l]=A.displayName="GeneratorFunction",h.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===A||"GeneratorFunction"===(e.displayName||e.name))},h.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,E):(t.__proto__=E,l in t||(t[l]="GeneratorFunction")),t.prototype=Object.create(w),t},h.awrap=function(t){return{__await:t}},C(k.prototype),k.prototype[f]=function(){return this},h.AsyncIterator=k,h.async=function(t,e,n,r){var o=new k(x(t,e,n,r));return h.isGeneratorFunction(e)?o:o.next().then((function(t){return t.done?t.value:o.next()}))},C(w),w[l]="Generator",w[c]=function(){return this},w.toString=function(){return"[object Generator]"},h.keys=function(object){var t=[];for(var e in object)t.push(e);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in object)return e.value=n,e.done=!1,e}return e.done=!0,e}},h.values=N,I.prototype={constructor:I,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(T),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(n,r){return c.type="throw",c.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],c=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var f=r.call(o,"catchLoc"),l=r.call(o,"finallyLoc");if(f&&l){if(this.prev=0;--i){var n=this.tryEntries[i];if(n.tryLoc<=this.prev&&r.call(n,"finallyLoc")&&this.prev=0;--i){var e=this.tryEntries[i];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),T(e),v}},catch:function(t){for(var i=this.tryEntries.length-1;i>=0;--i){var e=this.tryEntries[i];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var r=n.arg;T(e)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:N(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),v}}}function x(t,e,n,r){var o=e&&e.prototype instanceof O?e:O,c=Object.create(o.prototype),f=new I(r||[]);return c._invoke=function(t,e,n){var r="suspendedStart";return function(o,c){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw c;return P()}for(n.method=o,n.arg=c;;){var f=n.delegate;if(f){var l=$(f,n);if(l){if(l===v)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var d=S(t,e,n);if("normal"===d.type){if(r=n.done?"completed":"suspendedYield",d.arg===v)continue;return{value:d.arg,done:n.done}}"throw"===d.type&&(r="completed",n.method="throw",n.arg=d.arg)}}}(t,n,f),c}function S(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}function O(){}function A(){}function E(){}function C(t){["next","throw","return"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function k(t){var e;this._invoke=function(n,o){function c(){return new Promise((function(e,c){!function e(n,o,c,f){var l=S(t[n],t,o);if("throw"!==l.type){var d=l.arg,h=d.value;return h&&"object"==typeof h&&r.call(h,"__await")?Promise.resolve(h.__await).then((function(t){e("next",t,c,f)}),(function(t){e("throw",t,c,f)})):Promise.resolve(h).then((function(t){d.value=t,c(d)}),(function(t){return e("throw",t,c,f)}))}f(l.arg)}(n,o,e,c)}))}return e=e?e.then(c,c):c()}}function $(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,$(t,e),"throw"===e.method))return v;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=S(n,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,v;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,v):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,v)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function N(t){if(t){var e=t[c];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,n=function e(){for(;++i-1&&e.splice(i,1)}}function _(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;x(t,n,[],t._modules.root,!0),w(t,n,e)}function w(t,e,n){var r=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var c=t._wrappedGetters,f={};o(c,(function(e,n){f[n]=function(t,e){return function(){return t(e)}}(e,t),Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})}));var l=h.config.silent;h.config.silent=!0,t._vm=new h({data:{$$state:e},computed:f}),h.config.silent=l,t.strict&&function(t){t._vm.$watch((function(){return this._data.$$state}),(function(){0}),{deep:!0,sync:!0})}(t),r&&(n&&t._withCommit((function(){r._data.$$state=null})),h.nextTick((function(){return r.$destroy()})))}function x(t,e,path,n,r){var o=!path.length,c=t._modules.getNamespace(path);if(n.namespaced&&(t._modulesNamespaceMap[c],t._modulesNamespaceMap[c]=n),!o&&!r){var f=S(e,path.slice(0,-1)),l=path[path.length-1];t._withCommit((function(){h.set(f,l,n.state)}))}var d=n.context=function(t,e,path){var n=""===e,r={dispatch:n?t.dispatch:function(n,r,o){var c=O(n,r,o),f=c.payload,l=c.options,d=c.type;return l&&l.root||(d=e+d),t.dispatch(d,f)},commit:n?t.commit:function(n,r,o){var c=O(n,r,o),f=c.payload,l=c.options,d=c.type;l&&l.root||(d=e+d),t.commit(d,f,l)}};return Object.defineProperties(r,{getters:{get:n?function(){return t.getters}:function(){return function(t,e){if(!t._makeLocalGettersCache[e]){var n={},r=e.length;Object.keys(t.getters).forEach((function(o){if(o.slice(0,r)===e){var c=o.slice(r);Object.defineProperty(n,c,{get:function(){return t.getters[o]},enumerable:!0})}})),t._makeLocalGettersCache[e]=n}return t._makeLocalGettersCache[e]}(t,e)}},state:{get:function(){return S(t.state,path)}}}),r}(t,c,path);n.forEachMutation((function(e,n){!function(t,e,n,r){(t._mutations[e]||(t._mutations[e]=[])).push((function(e){n.call(t,r.state,e)}))}(t,c+n,e,d)})),n.forEachAction((function(e,n){var r=e.root?n:c+n,o=e.handler||e;!function(t,e,n,r){(t._actions[e]||(t._actions[e]=[])).push((function(e){var o,c=n.call(t,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:t.getters,rootState:t.state},e);return(o=c)&&"function"==typeof o.then||(c=Promise.resolve(c)),t._devtoolHook?c.catch((function(e){throw t._devtoolHook.emit("vuex:error",e),e})):c}))}(t,r,o,d)})),n.forEachGetter((function(e,n){!function(t,e,n,r){if(t._wrappedGetters[e])return void 0;t._wrappedGetters[e]=function(t){return n(r.state,r.getters,t.state,t.getters)}}(t,c+n,e,d)})),n.forEachChild((function(n,o){x(t,e,path.concat(o),n,r)}))}function S(t,path){return path.reduce((function(t,e){return t[e]}),t)}function O(t,e,n){return c(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function A(t){h&&t===h||function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:n});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[n].concat(t.init):n,e.call(this,t)}}function n(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}(h=t)}y.state.get=function(){return this._vm._data.$$state},y.state.set=function(t){0},v.prototype.commit=function(t,e,n){var r=this,o=O(t,e,n),c=o.type,f=o.payload,l=(o.options,{type:c,payload:f}),d=this._mutations[c];d&&(this._withCommit((function(){d.forEach((function(t){t(f)}))})),this._subscribers.slice().forEach((function(sub){return sub(l,r.state)})))},v.prototype.dispatch=function(t,e){var n=this,r=O(t,e),o=r.type,c=r.payload,f={type:o,payload:c},l=this._actions[o];if(l){try{this._actionSubscribers.slice().filter((function(sub){return sub.before})).forEach((function(sub){return sub.before(f,n.state)}))}catch(t){0}var d=l.length>1?Promise.all(l.map((function(t){return t(c)}))):l[0](c);return new Promise((function(t,e){d.then((function(e){try{n._actionSubscribers.filter((function(sub){return sub.after})).forEach((function(sub){return sub.after(f,n.state)}))}catch(t){0}t(e)}),(function(t){try{n._actionSubscribers.filter((function(sub){return sub.error})).forEach((function(sub){return sub.error(f,n.state,t)}))}catch(t){0}e(t)}))}))}},v.prototype.subscribe=function(t,e){return m(t,this._subscribers,e)},v.prototype.subscribeAction=function(t,e){return m("function"==typeof t?{before:t}:t,this._actionSubscribers,e)},v.prototype.watch=function(t,e,n){var r=this;return this._watcherVM.$watch((function(){return t(r.state,r.getters)}),e,n)},v.prototype.replaceState=function(t){var e=this;this._withCommit((function(){e._vm._data.$$state=t}))},v.prototype.registerModule=function(path,t,e){void 0===e&&(e={}),"string"==typeof path&&(path=[path]),this._modules.register(path,t),x(this,this.state,path,this._modules.get(path),e.preserveState),w(this,this.state)},v.prototype.unregisterModule=function(path){var t=this;"string"==typeof path&&(path=[path]),this._modules.unregister(path),this._withCommit((function(){var e=S(t.state,path.slice(0,-1));h.delete(e,path[path.length-1])})),_(this)},v.prototype.hasModule=function(path){return"string"==typeof path&&(path=[path]),this._modules.isRegistered(path)},v.prototype.hotUpdate=function(t){this._modules.update(t),_(this,!0)},v.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(v.prototype,y);var E=T((function(t,e){var n={};return j(e).forEach((function(e){var r=e.key,o=e.val;n[r]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=I(this.$store,"mapState",t);if(!r)return;e=r.context.state,n=r.context.getters}return"function"==typeof o?o.call(this,e,n):e[o]},n[r].vuex=!0})),n})),C=T((function(t,e){var n={};return j(e).forEach((function(e){var r=e.key,o=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.commit;if(t){var c=I(this.$store,"mapMutations",t);if(!c)return;r=c.context.commit}return"function"==typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}})),n})),k=T((function(t,e){var n={};return j(e).forEach((function(e){var r=e.key,o=e.val;o=t+o,n[r]=function(){if(!t||I(this.$store,"mapGetters",t))return this.$store.getters[o]},n[r].vuex=!0})),n})),$=T((function(t,e){var n={};return j(e).forEach((function(e){var r=e.key,o=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.dispatch;if(t){var c=I(this.$store,"mapActions",t);if(!c)return;r=c.context.dispatch}return"function"==typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}})),n}));function j(map){return function(map){return Array.isArray(map)||c(map)}(map)?Array.isArray(map)?map.map((function(t){return{key:t,val:t}})):Object.keys(map).map((function(t){return{key:t,val:map[t]}})):[]}function T(t){return function(e,map){return"string"!=typeof e?(map=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,map)}}function I(t,e,n){return t._modulesNamespaceMap[n]}function N(t,e,n){var r=n?t.groupCollapsed:t.group;try{r.call(t,e)}catch(n){t.log(e)}}function P(t){try{t.groupEnd()}catch(e){t.log("—— log end ——")}}function M(){var time=new Date;return" @ "+R(time.getHours(),2)+":"+R(time.getMinutes(),2)+":"+R(time.getSeconds(),2)+"."+R(time.getMilliseconds(),3)}function R(t,e){return n="0",r=e-t.toString().length,new Array(r+1).join(n)+t;var n,r}var L={Store:v,install:A,version:"3.5.1",mapState:E,mapMutations:C,mapGetters:k,mapActions:$,createNamespacedHelpers:function(t){return{mapState:E.bind(null,t),mapGetters:k.bind(null,t),mapMutations:C.bind(null,t),mapActions:$.bind(null,t)}},createLogger:function(t){void 0===t&&(t={});var e=t.collapsed;void 0===e&&(e=!0);var filter=t.filter;void 0===filter&&(filter=function(t,e,n){return!0});var n=t.transformer;void 0===n&&(n=function(t){return t});var o=t.mutationTransformer;void 0===o&&(o=function(t){return t});var c=t.actionFilter;void 0===c&&(c=function(t,e){return!0});var f=t.actionTransformer;void 0===f&&(f=function(t){return t});var l=t.logMutations;void 0===l&&(l=!0);var d=t.logActions;void 0===d&&(d=!0);var h=t.logger;return void 0===h&&(h=console),function(t){var v=r(t.state);void 0!==h&&(l&&t.subscribe((function(t,c){var f=r(c);if(filter(t,v,f)){var l=M(),d=o(t),y="mutation "+t.type+l;N(h,y,e),h.log("%c prev state","color: #9E9E9E; font-weight: bold",n(v)),h.log("%c mutation","color: #03A9F4; font-weight: bold",d),h.log("%c next state","color: #4CAF50; font-weight: bold",n(f)),P(h)}v=f})),d&&t.subscribeAction((function(t,n){if(c(t,n)){var r=M(),o=f(t),l="action "+t.type+r;N(h,l,e),h.log("%c action","color: #03A9F4; font-weight: bold",o),P(h)}})))}}};e.a=L}).call(this,n(28))},function(t,e,n){"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i=0&&(t=path.slice(n),path=path.slice(0,n));var r=path.indexOf("?");return r>=0&&(e=path.slice(r+1),path=path.slice(0,r)),{path:path,query:e,hash:t}}(c.path||""),v=e&&e.path||"/",path=h.path?$(h.path,v,n||c.append):v,_=function(t,e,n){void 0===e&&(e={});var r,o=n||m;try{r=o(t||"")}catch(t){r={}}for(var c in e){var f=e[c];r[c]=Array.isArray(f)?f.map(y):y(f)}return r}(h.query,c.query,o&&o.options.parseQuery),w=c.hash||h.hash;return w&&"#"!==w.charAt(0)&&(w="#"+w),{_normalized:!0,path:path,query:_,hash:w}}var Y,Q=function(){},Z={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(t){var e=this,n=this.$router,o=this.$route,c=n.resolve(this.to,o,this.append),f=c.location,l=c.route,d=c.href,h={},v=n.options.linkActiveClass,y=n.options.linkExactActiveClass,m=null==v?"router-link-active":v,_=null==y?"router-link-exact-active":y,S=null==this.activeClass?m:this.activeClass,O=null==this.exactActiveClass?_:this.exactActiveClass,A=l.redirectedFrom?x(null,J(l.redirectedFrom),null,n):l;h[O]=C(o,A),h[S]=this.exact?h[O]:function(t,e){return 0===t.path.replace(w,"/").indexOf(e.path.replace(w,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(o,A);var E=h[O]?this.ariaCurrentValue:null,k=function(t){tt(t)&&(e.replace?n.replace(f,Q):n.push(f,Q))},$={click:tt};Array.isArray(this.event)?this.event.forEach((function(t){$[t]=k})):$[this.event]=k;var data={class:h},j=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:d,route:l,navigate:k,isActive:h[S],isExactActive:h[O]});if(j){if(1===j.length)return j[0];if(j.length>1||!j.length)return 0===j.length?t():t("span",{},j)}if("a"===this.tag)data.on=$,data.attrs={href:d,"aria-current":E};else{var a=function t(e){var n;if(e)for(var i=0;i-1&&(l.params[m]=n.params[m]);return l.path=X(v.path,l.params),d(v,l,f)}if(l.path){l.params={};for(var i=0;i=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}var kt={redirected:2,aborted:4,cancelled:8,duplicated:16};function $t(t,e){return Tt(t,e,kt.redirected,'Redirected when going from "'+t.fullPath+'" to "'+function(t){if("string"==typeof t)return t;if("path"in t)return t.path;var e={};return It.forEach((function(n){n in t&&(e[n]=t[n])})),JSON.stringify(e,null,2)}(e)+'" via a navigation guard.')}function jt(t,e){return Tt(t,e,kt.cancelled,'Navigation cancelled from "'+t.fullPath+'" to "'+e.fullPath+'" with a new navigation.')}function Tt(t,e,n,r){var o=new Error(r);return o._isRouter=!0,o.from=t,o.to=e,o.type=n,o}var It=["params","query","hash"];function Nt(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function Pt(t,e){return Nt(t)&&t._isRouter&&(null==e||t.type===e)}function Mt(t){return function(e,n,r){var o=!1,c=0,f=null;Rt(t,(function(t,e,n,l){if("function"==typeof t&&void 0===t.cid){o=!0,c++;var d,h=Ft((function(e){var o;((o=e).__esModule||Dt&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Y.extend(e),n.components[l]=e,--c<=0&&r()})),v=Ft((function(t){var e="Failed to resolve async component "+l+": "+t;f||(f=Nt(t)?t:new Error(e),r(f))}));try{d=t(h,v)}catch(t){v(t)}if(d)if("function"==typeof d.then)d.then(h,v);else{var y=d.component;y&&"function"==typeof y.then&&y.then(h,v)}}})),o||r()}}function Rt(t,e){return Lt(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Lt(t){return Array.prototype.concat.apply([],t)}var Dt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ft(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var Ut=function(t,base){this.router=t,this.base=function(base){if(!base)if(et){var t=document.querySelector("base");base=(base=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else base="/";"/"!==base.charAt(0)&&(base="/"+base);return base.replace(/\/$/,"")}(base),this.current=O,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Bt(t,e,n,r){var o=Rt(t,(function(t,r,o,c){var f=function(t,e){"function"!=typeof t&&(t=Y.extend(t));return t.options[e]}(t,e);if(f)return Array.isArray(f)?f.map((function(t){return n(t,r,o,c)})):n(f,r,o,c)}));return Lt(r?o.reverse():o)}function Vt(t,e){if(e)return function(){return t.apply(e,arguments)}}Ut.prototype.listen=function(t){this.cb=t},Ut.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Ut.prototype.onError=function(t){this.errorCbs.push(t)},Ut.prototype.transitionTo=function(t,e,n){var r,o=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var c=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),e&&e(r),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(r,c)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(r)})))}),(function(t){n&&n(t),t&&!o.ready&&(Pt(t,kt.redirected)&&c===O||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},Ut.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current;this.pending=t;var c,f,l=function(t){!Pt(t)&&Nt(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)},d=t.matched.length-1,h=o.matched.length-1;if(C(t,o)&&d===h&&t.matched[d]===o.matched[h])return this.ensureURL(),l(((f=Tt(c=o,t,kt.duplicated,'Avoided redundant navigation to current location: "'+c.fullPath+'".')).name="NavigationDuplicated",f));var v=function(t,e){var i,n=Math.max(t.length,e.length);for(i=0;i0)){var e=this.router,n=e.options.scrollBehavior,r=Ot&&n;r&&this.listeners.push(ht());var o=function(){var n=t.current,o=qt(t.base);t.current===O&&o===t._startLocation||t.transitionTo(o,(function(t){r&&vt(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){At(j(r.base+t.fullPath)),vt(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Et(j(r.base+t.fullPath)),vt(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(qt(this.base)!==this.current.fullPath){var e=j(this.base+this.current.fullPath);t?At(e):Et(e)}},e.prototype.getCurrentLocation=function(){return qt(this.base)},e}(Ut);function qt(base){var path=decodeURI(window.location.pathname);return base&&0===path.toLowerCase().indexOf(base.toLowerCase())&&(path=path.slice(base.length)),(path||"/")+window.location.search+window.location.hash}var zt=function(t){function e(e,base,n){t.call(this,e,base),n&&function(base){var t=qt(base);if(!/^\/#/.test(t))return window.location.replace(j(base+"/#"+t)),!0}(this.base)||Gt()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,n=Ot&&e;n&&this.listeners.push(ht());var r=function(){var e=t.current;Gt()&&t.transitionTo(Kt(),(function(r){n&&vt(t.router,r,e,!0),Ot||Jt(r.fullPath)}))},o=Ot?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Xt(t.fullPath),vt(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Jt(t.fullPath),vt(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Kt()!==e&&(t?Xt(e):Jt(e))},e.prototype.getCurrentLocation=function(){return Kt()},e}(Ut);function Gt(){var path=Kt();return"/"===path.charAt(0)||(Jt("/"+path),!1)}function Kt(){var t=window.location.href,e=t.indexOf("#");if(e<0)return"";var n=(t=t.slice(e+1)).indexOf("?");if(n<0){var r=t.indexOf("#");t=r>-1?decodeURI(t.slice(0,r))+t.slice(r):decodeURI(t)}else t=decodeURI(t.slice(0,n))+t.slice(n);return t}function Wt(path){var t=window.location.href,i=t.indexOf("#");return(i>=0?t.slice(0,i):t)+"#"+path}function Xt(path){Ot?At(Wt(path)):window.location.hash=path}function Jt(path){Ot?Et(Wt(path)):window.location.replace(Wt(path))}var Yt=function(t){function e(e,base){t.call(this,e,base),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){Pt(t,kt.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Ut),Qt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=it(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Ot&&!1!==t.fallback,this.fallback&&(e="hash"),et||(e="abstract"),this.mode=e,e){case"history":this.history=new Ht(this,t.base);break;case"hash":this.history=new zt(this,t.base,this.fallback);break;case"abstract":this.history=new Yt(this,t.base);break;default:0}},Zt={currentRoute:{configurable:!0}};function te(t,e){return t.push(e),function(){var i=t.indexOf(e);i>-1&&t.splice(i,1)}}Qt.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},Zt.currentRoute.get=function(){return this.history&&this.history.current},Qt.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof Ht||n instanceof zt){var r=function(t){n.setupListeners(),function(t){var r=n.current,o=e.options.scrollBehavior;Ot&&o&&"fullPath"in t&&vt(e,t,r,!1)}(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Qt.prototype.beforeEach=function(t){return te(this.beforeHooks,t)},Qt.prototype.beforeResolve=function(t){return te(this.resolveHooks,t)},Qt.prototype.afterEach=function(t){return te(this.afterHooks,t)},Qt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Qt.prototype.onError=function(t){this.history.onError(t)},Qt.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},Qt.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},Qt.prototype.go=function(t){this.history.go(t)},Qt.prototype.back=function(){this.go(-1)},Qt.prototype.forward=function(){this.go(1)},Qt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Qt.prototype.resolve=function(t,e,n){var r=J(t,e=e||this.history.current,n,this),o=this.match(r,e),c=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(base,t,e){var path="hash"===e?"#"+t:t;return base?j(base+"/"+path):path}(this.history.base,c,this.mode),normalizedTo:r,resolved:o}},Qt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==O&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Qt.prototype,Zt),Qt.install=function t(e){if(!t.installed||Y!==e){t.installed=!0,Y=e;var n=function(t){return void 0!==t},r=function(t,e){var i=t.$options._parentVnode;n(i)&&n(i=i.data)&&n(i=i.registerRouteInstance)&&i(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",o),e.component("RouterLink",Z);var c=e.config.optionMergeStrategies;c.beforeRouteEnter=c.beforeRouteLeave=c.beforeRouteUpdate=c.created}},Qt.version="3.4.5",Qt.isNavigationFailure=Pt,Qt.NavigationFailureType=kt,et&&window.Vue&&window.Vue.use(Qt),e.a=Qt},function(t,e,n){"use strict";var r=n(77),o=n(7),c=n(24),f=n(15),l=n(54),d=n(14),h=n(105),v=n(78),y=Math.max,m=Math.min,_=Math.floor,w=/\$([$&'`]|\d\d?|<[^>]*>)/g,x=/\$([$&'`]|\d\d?)/g;r("replace",2,(function(t,e,n,r){var S=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,O=r.REPLACE_KEEPS_$0,A=S?"$":"$0";return[function(n,r){var o=d(this),c=null==n?void 0:n[t];return void 0!==c?c.call(n,o,r):e.call(String(o),n,r)},function(t,r){if(!S&&O||"string"==typeof r&&-1===r.indexOf(A)){var c=n(e,t,this,r);if(c.done)return c.value}var d=o(t),_=String(this),w="function"==typeof r;w||(r=String(r));var x=d.global;if(x){var C=d.unicode;d.lastIndex=0}for(var k=[];;){var $=v(d,_);if(null===$)break;if(k.push($),!x)break;""===String($[0])&&(d.lastIndex=h(_,f(d.lastIndex),C))}for(var j,T="",I=0,i=0;i=I&&(T+=_.slice(I,P)+F,I=P+N.length)}return T+_.slice(I)}];function E(t,n,r,o,f,l){var d=r+t.length,h=o.length,v=x;return void 0!==f&&(f=c(f),v=w),e.call(l,v,(function(e,c){var l;switch(c.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,r);case"'":return n.slice(d);case"<":l=f[c.slice(1,-1)];break;default:var v=+c;if(0===v)return e;if(v>h){var y=_(v/10);return 0===y?e:y<=h?void 0===o[y-1]?c.charAt(1):o[y-1]+c.charAt(1):e}l=o[v-1]}return void 0===l?"":l}))}}))},function(t,e,n){var r=n(91),o=n(92),c=r("keys");t.exports=function(t){return c[t]||(c[t]=o(t))}},function(t,e){t.exports={}},function(t,e,n){var r=n(5),o=/#|\.prototype\./,c=function(t,e){var n=data[f(t)];return n==d||n!=l&&("function"==typeof e?r(e):!!e)},f=c.normalize=function(t){return String(t).replace(o,".").toLowerCase()},data=c.data={},l=c.NATIVE="N",d=c.POLYFILL="P";t.exports=c},function(t,e,n){var r=n(23);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r,o=n(7),c=n(171),f=n(94),l=n(65),html=n(122),d=n(88),h=n(64),v=h("IE_PROTO"),y=function(){},m=function(content){return" + + diff --git a/Tubio/frontend/rest-dummies/cache.json b/Tubio/frontend/rest-dummies/cache.json new file mode 100644 index 0000000..2f8973f --- /dev/null +++ b/Tubio/frontend/rest-dummies/cache.json @@ -0,0 +1,66 @@ +{ + "cache": [ + { + "description": "Download Eminem's 'MMLP2' Album on iTunes now:http://smarturl.it/MMLP2\n\nCredits below\nVideo Director: Rich Lee\nVideo Producer: Justin Diener\nVideo Producer: Kathy Angstadt\n\nPlaylist Best of Eminem: https://goo.gl/AquNpo\nSubscribe for more: https://goo.gl/DxCrDV\n\n#Eminem #RapGod #Vevo", + "download_progress": 0, + "download_url": "/download/1KnEwh", + "downloaded_filename": "", + "duration": 369, + "mode": "video", + "queued_timestamp": 1601481597, + "status": "queued", + "thumbnail_url": "https://i.ytimg.com/vi/XbGs_qK2PQA/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==&rs=AOn4CLCNO4b_zqnDZVdwf7GpJ1i0TEEvJA", + "title": "Eminem - Rap God (Explicit) [Official Video]", + "tubio_id": "1KnEwh", + "uploader": "EminemVEVO", + "webpage_url": "https://www.youtube.com/watch?v=XbGs_qK2PQA" + }, + { + "description": "Check out my SoundCloud Channel for more music: https://soundcloud.com/user-411907790\n\u266c \u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u266c \nA big thank you to everyone who voluntarily financially supports my work and thus makes it possible:\n\u26abPaypal: https://www.paypal.me/KarlSternau\n\u26abPatreon: https://www.patreon.com/karlsternau\n\u266c \u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012\u2012 \u266c", + "download_progress": 98, + "download_url": "/download/1KnEwb", + "downloaded_filename": "dlcache/download/1KnEwb.mp4", + "duration": 413, + "mode": "video", + "queued_timestamp": 1601481591, + "status": "downloading", + "thumbnail_url": "https://i.ytimg.com/vi/c3wRzxiQ8Zk/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==&rs=AOn4CLC4MWTAc7sY5uF6hFzNk2D0tawTSA", + "title": "Sing with Karl - Des Morgens Um Halb Viere [Old soldier and student way][All Stanzas]", + "tubio_id": "1KnEwb", + "uploader": "Karl Sternau", + "webpage_url": "https://www.youtube.com/watch?v=c3wRzxiQ8Zk" + }, + { + "description": "Latest video off of Lil Dicky's debut album \"Professional Rapper.\" Download the album here: http://smarturl.it/LilDickyiTunes \n\nWatch Lil Dicky create the most epic rap video, all while he $aves Dat Money! Click here for the documentary: https://www.youtube.com/watch?v=zkXpb20b-NQ\n\nDirector\nTony Yacenda\nwww.TonyYacenda.com\n\nProducer\nJim Cummings\n\nCinematographer\nAlan Gwizdowski\n\nMusic Video Editor\nBrian Vannucci\n\nDocumentary Editor\nBrad Allen Wilde\n\nPost Supervisor\nRyan Ross\n\nColorist\nSean Wells\n\nSound Mixers\nDi Le\nDarrell Tung\n\nSecond Unit DPs\nAdam Lee\nJeff Kulig\nLuc Delamare\n\nBoat Girls\nMelissa Soria\nSuzanne Quast\nJulia Misaki\n\nSpecial Thanks\n\"The Study\u201d Hollywood\nAvilaVIP\nMrs. \u201cK\u201d\nThe Noho Diner\nFrosty Treats/Amp Entertainment\n\nWeedmaps\nMaster and Dynamic\nRGF Productions\nJash\nMeUndies (www.meundies.com)\n\nand\n\nSarah Silverman\nKevin Durant\nDillon Francis\nHannibal Buress\nAbbi Jacobson\nIlana Glazer\nMark Cuban\nTom Petty\n\nSong produced by Money Alwayz\nSong Mixed by Rob Kinelski at The Fortress of Amplitude\nAssistant Engineer: David Baker", + "download_progress": 100, + "download_url": "/download/1KnEw2", + "downloaded_filename": "dlcache/download/1KnEw2.mp4", + "duration": 528, + "mode": "video", + "queued_timestamp": 1601481583, + "status": "finished", + "thumbnail_url": "https://i.ytimg.com/vi/yvHYWD29ZNY/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==&rs=AOn4CLAEDvLcxoI0aEQ_gYmFwJJN_4Zpyg", + "title": "Lil Dicky - $ave Dat Money feat. Fetty Wap and Rich Homie Quan (Official Music Video)", + "tubio_id": "1KnEw2", + "uploader": "Lil Dicky", + "webpage_url": "https://www.youtube.com/watch?v=yvHYWD29ZNY" + }, + { + "description": "Get the new album \"Wintersaga\" here: https://smarturl.it/Wintersaga-NPR\n\nWind Rose states:\n\u201cMining is one of the most important activities for a Dwarf, naturally Wind Rose needed a theme song for this great honor of collecting these jewels from the soil, so sing with us with pride!!\u201c \n\n\"Diggy Diggy Hole\" originally written by Yogscast\n\nMixed and Mastered by Lasse Lammert", + "download_progress": 9, + "download_url": "/download/1KnEvV", + "downloaded_filename": "dlcache/download/1KnEvV.mp4", + "duration": 341, + "mode": "video", + "queued_timestamp": 1601481574, + "status": "failed", + "thumbnail_url": "https://i.ytimg.com/vi/34CZjsEI1yU/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==&rs=AOn4CLBW5B03ohHsKIrdYgJRvSAQNyRNqQ", + "title": "WIND ROSE - Diggy Diggy Hole (Official Video) | Napalm Records", + "tubio_id": "1KnEvV", + "uploader": "Napalm Records", + "webpage_url": "https://www.youtube.com/watch?v=34CZjsEI1yU" + } + ], + "cache_size": 4, + "status": "OK" +} \ No newline at end of file diff --git a/Tubio/frontend/rest-dummies/logs.json b/Tubio/frontend/rest-dummies/logs.json new file mode 100644 index 0000000..2fe87aa --- /dev/null +++ b/Tubio/frontend/rest-dummies/logs.json @@ -0,0 +1,2198 @@ +{ + "logs": [ + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 18:09:23> [RestQueryHandler] @127.0.0.1: Fetching logs...", + "identifier": "RestQueryHandler", + "message": "Fetching logs...", + "timestamp": 1601482163, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:39> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481639, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:39> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481639, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:29> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481629, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:29> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481629, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 18:00:23> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601481623, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:23> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481623, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:23> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481623, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:12> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481612, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:12> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481612, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:58> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601481598, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:53> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "timestamp": 1601481593, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:47> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=c3wRzxiQ8Zk&ab_channel=KarlSternau\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=c3wRzxiQ8Zk&ab_channel=KarlSternau\"...", + "timestamp": 1601481587, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:38> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY&ab_channel=LilDicky\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY&ab_channel=LilDicky\"...", + "timestamp": 1601481578, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:31> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "timestamp": 1601481571, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:22> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601481562, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:16> [DownloadManager]: Clearing download cache...", + "identifier": "DownloadManager", + "message": "Clearing download cache...", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:16> [RestQueryHandler] @127.0.0.1: Clearing download cache...", + "identifier": "RestQueryHandler", + "message": "Clearing download cache...", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:16> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:16> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:16> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:16> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:03> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "timestamp": 1601481543, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:01> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481541, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:01> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481541, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:01> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481541, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:01> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481541, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:01> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481541, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:57:44> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "timestamp": 1601481464, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:57:42> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481462, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:57:42> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481462, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:57:42> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481462, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:57:42> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481462, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:57:42> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481462, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:56:45> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "timestamp": 1601481405, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:56:44> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481404, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:56:44> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481404, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:56:44> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481404, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:56:44> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481404, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:56:44> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481404, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:54:22> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "timestamp": 1601481262, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:16> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481256, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:16> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481256, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:16> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481256, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:16> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481256, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:54:07> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/c3wRzxiQ8Zk\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/c3wRzxiQ8Zk\"...", + "timestamp": 1601481247, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:02> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:02> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:02> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:02> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:02> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:51> [Config]: Saving config...", + "identifier": "Config", + "message": "Saving config...", + "timestamp": 1601481231, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:51> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481231, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:51> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481231, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:51> [HttpServer]: Shutting down http-server...", + "identifier": "HttpServer", + "message": "Shutting down http-server...", + "timestamp": 1601481231, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:53:51> [RestQueryHandler] @127.0.0.1: Shutting down server upon client request...", + "identifier": "RestQueryHandler", + "message": "Shutting down server upon client request...", + "timestamp": 1601481231, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:23> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481203, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:23> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481203, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:23> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481203, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:23> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481203, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:10> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481190, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:10> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481190, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:10> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481190, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:10> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481190, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:53:01> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/yvHYWD29ZNY\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/yvHYWD29ZNY\"...", + "timestamp": 1601481181, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:52:47> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "timestamp": 1601481167, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:42> [DownloadManager]: Clearing download cache...", + "identifier": "DownloadManager", + "message": "Clearing download cache...", + "timestamp": 1601481162, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:52:42> [RestQueryHandler] @127.0.0.1: Clearing download cache...", + "identifier": "RestQueryHandler", + "message": "Clearing download cache...", + "timestamp": 1601481162, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:36> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481156, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:36> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481156, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:36> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481156, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:36> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481156, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:36> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481156, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:52:02> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY&ab_channel=LilDicky\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY&ab_channel=LilDicky\"...", + "timestamp": 1601481122, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:51:48> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "timestamp": 1601481108, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:51:46> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481106, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:51:46> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481106, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:51:46> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481106, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:51:46> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481106, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:51:46> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481106, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:18:44> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601479124, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:42> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601479122, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:42> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601479122, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:42> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601479122, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:42> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601479122, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:42> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601479122, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:18:15> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601479095, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:11> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601479091, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:11> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601479091, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:11> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601479091, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:11> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601479091, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:11> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601479091, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:43:23> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601473403, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:21> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601473401, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:21> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601473401, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:21> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601473401, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:21> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601473401, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:43:12> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601473392, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:10> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601473390, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:10> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601473390, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:10> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601473390, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:09> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601473389, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:43:06> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=34CZjsEI1yU\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=34CZjsEI1yU\"...", + "timestamp": 1601473386, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:42:52> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY\"...", + "timestamp": 1601473372, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:42:50> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601473370, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:42:50> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601473370, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:42:50> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601473370, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:42:50> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601473370, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:42:41> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/c3wRzxiQ8Zk\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/c3wRzxiQ8Zk\"...", + "timestamp": 1601473361, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:42:01> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601473321, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:41:53> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601473313, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:41:53> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601473313, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:41:53> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601473313, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:41:53> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601473313, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:41:38> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/XbGs_qK2PQA\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/XbGs_qK2PQA\"...", + "timestamp": 1601473298, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:41:16> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601473276, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:25:38> [RestQueryHandler] @127.0.0.1: Fetching logs...", + "identifier": "RestQueryHandler", + "message": "Fetching logs...", + "timestamp": 1601472338, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 14:56:05> [RestQueryHandler] @127.0.0.1: Fetching disk usage...", + "identifier": "RestQueryHandler", + "message": "Fetching disk usage...", + "timestamp": 1601470565, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 14:55:58> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601470558, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 14:55:58> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601470558, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 14:55:58> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601470558, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 14:55:58> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601470558, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 14:55:58> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601470558, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:26:57> [Config]: Saving config...", + "identifier": "Config", + "message": "Saving config...", + "timestamp": 1601465217, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:26:57> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601465217, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:26:57> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601465217, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:26:57> [HttpServer]: Shutting down http-server...", + "identifier": "HttpServer", + "message": "Shutting down http-server...", + "timestamp": 1601465217, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:26:57> [RestQueryHandler] @127.0.0.1: Shutting down server upon client request...", + "identifier": "RestQueryHandler", + "message": "Shutting down server upon client request...", + "timestamp": 1601465217, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:22:09> [DownloadManager]: Clearing download cache...", + "identifier": "DownloadManager", + "message": "Clearing download cache...", + "timestamp": 1601464929, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:22:09> [RestQueryHandler] @127.0.0.1: Clearing download cache...", + "identifier": "RestQueryHandler", + "message": "Clearing download cache...", + "timestamp": 1601464929, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:22:04> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601464924, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:22:04> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601464924, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:22:04> [RestQueryHandler] @127.0.0.1: Removing download id 1KnnMe...", + "identifier": "RestQueryHandler", + "message": "Removing download id 1KnnMe...", + "timestamp": 1601464924, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:50> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601464910, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:50> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601464910, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:21:50> [RestQueryHandler] @127.0.0.1: Removing download id 1KnnPb...", + "identifier": "RestQueryHandler", + "message": "Removing download id 1KnnPb...", + "timestamp": 1601464910, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:21:37> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601464897, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:23> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601464883, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:23> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601464883, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:21:23> [RestQueryHandler] @127.0.0.1: Removing download id 1KnnPV...", + "identifier": "RestQueryHandler", + "message": "Removing download id 1KnnPV...", + "timestamp": 1601464883, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:20> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601464880, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:20> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601464880, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:20> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601464880, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:20> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601464880, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:20> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601464880, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:20:00> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601464800, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:19:47> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601464787, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:19:21> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601464761, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:19:21> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601464761, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:19:21> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601464761, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:19:21> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601464761, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:19:21> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601464761, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:15:29> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601464529, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:15:20> [RestQueryHandler] @127.0.0.1: Removing download id 1KnnPV...", + "identifier": "RestQueryHandler", + "message": "Removing download id 1KnnPV...", + "timestamp": 1601464520, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:14:50> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601464490, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:14:47> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601464487, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:14:34> [RestQueryHandler] @127.0.0.1: Fetching session logs...", + "identifier": "RestQueryHandler", + "message": "Fetching session logs...", + "timestamp": 1601464474, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:14:26> [RestQueryHandler] @127.0.0.1: Removing download id penis...", + "identifier": "RestQueryHandler", + "message": "Removing download id penis...", + "timestamp": 1601464466, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:14:25> [RestQueryHandler] @127.0.0.1: Removing download id penis...", + "identifier": "RestQueryHandler", + "message": "Removing download id penis...", + "timestamp": 1601464465, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:13:52> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601464432, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:13:52> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601464432, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:13:52> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601464432, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:13:52> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601464432, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:13:52> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601464432, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:12:55> [Config]: Saving config...", + "identifier": "Config", + "message": "Saving config...", + "timestamp": 1601417575, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:12:55> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601417575, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:12:55> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601417575, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:12:55> [HttpServer]: Shutting down http-server...", + "identifier": "HttpServer", + "message": "Shutting down http-server...", + "timestamp": 1601417575, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:55> [RestQueryHandler] @127.0.0.1: Shutting down server upon client request...", + "identifier": "RestQueryHandler", + "message": "Shutting down server upon client request...", + "timestamp": 1601417575, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:50> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417570, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:46> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417566, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:43> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417563, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:39> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417559, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:32> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417552, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:23> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417543, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:11:47> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417507, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:11:14> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601417474, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:11:14> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601417474, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:11:14> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601417474, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:11:14> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601417474, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:11:03> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/wgfNsek8xkc\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/wgfNsek8xkc\"...", + "timestamp": 1601417463, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:24> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601417424, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:24> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601417424, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:24> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601417424, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:24> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601417424, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:20> [DownloadManager] [WARN]: Dependency ffprobe.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "identifier": "DownloadManager", + "message": "Dependency ffprobe.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "timestamp": 1601417420, + "type": 1 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:20> [DownloadManager] [WARN]: Dependency ffplay.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "identifier": "DownloadManager", + "message": "Dependency ffplay.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "timestamp": 1601417420, + "type": 1 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:20> [DownloadManager] [WARN]: Dependency ffmpeg.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "identifier": "DownloadManager", + "message": "Dependency ffmpeg.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "timestamp": 1601417420, + "type": 1 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:10:17> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601417417, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:07:22> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601417242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:07:22> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601417242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:07:22> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601417242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:07:22> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601417242, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:07:14> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601417234, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:07:09> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601417229, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:07:07> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601417227, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:06:31> [DownloadManager] [WARN]: Dependency youtube-dl.exe missing! Try updating it! (\"request\": \"update_dep_youtubedl\"). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "identifier": "DownloadManager", + "message": "Dependency youtube-dl.exe missing! Try updating it! (\"request\": \"update_dep_youtubedl\"). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "timestamp": 1601417191, + "type": 1 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:06:31> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601417191, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:06:01> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601417161, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:06:01> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601417161, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:06:01> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601417161, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:06:01> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601417161, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:05:53> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601417153, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:05:46> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601417146, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:05:46> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601417146, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:05:46> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601417146, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:05:46> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601417146, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:05:46> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601417146, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:52> [Config]: Saving config...", + "identifier": "Config", + "message": "Saving config...", + "timestamp": 1601416612, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:52> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601416612, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:52> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601416612, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:52> [HttpServer]: Shutting down http-server...", + "identifier": "HttpServer", + "message": "Shutting down http-server...", + "timestamp": 1601416612, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:56:52> [RestQueryHandler] @127.0.0.1: Shutting down server upon client request...", + "identifier": "RestQueryHandler", + "message": "Shutting down server upon client request...", + "timestamp": 1601416612, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:56:08> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416568, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:04> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601416564, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:04> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601416564, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:04> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601416564, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:04> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601416564, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:56:03> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416563, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:57> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601416557, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:53> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601416553, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:51> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601416551, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:13> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416513, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:10> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601416510, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:04> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601416504, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:58> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416498, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:54> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416494, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:50> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416490, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:46> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416486, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:44> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601416484, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:37> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416477, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:54:32> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601416472, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:54:32> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601416472, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:54:32> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601416472, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:54:32> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601416472, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:54:32> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601416472, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:11> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416451, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:53:52> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416432, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:53:48> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601416428, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:53:43> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416423, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:53:39> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601416419, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:53:39> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601416419, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:53:39> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601416419, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:53:39> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601416419, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:53:39> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601416419, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:51:24> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416284, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:49:56> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416196, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:49:40> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416180, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:49:11> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601416151, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:48> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601416128, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:48> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601416128, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:13> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601416093, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:13> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601416093, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:10> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601416090, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:10> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601416090, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:02> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601416082, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:47:59> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601416079, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:46:37> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601415997, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:46:37> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601415997, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:46:37> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601415997, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:46:37> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601415997, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:46:37> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601415997, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:45:15> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601415915, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:45:15> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601415915, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:45:15> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601415915, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:45:15> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601415915, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:45:15> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601415915, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<28.09.2020 - 20:10:40> [Config]: Saving config...", + "identifier": "Config", + "message": "Saving config...", + "timestamp": 1601316640, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<28.09.2020 - 20:10:40> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601316640, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<28.09.2020 - 20:10:40> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601316640, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<28.09.2020 - 20:10:40> [HttpServer]: Shutting down http-server...", + "identifier": "HttpServer", + "message": "Shutting down http-server...", + "timestamp": 1601316640, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<28.09.2020 - 20:10:40> [RestQueryHandler] @127.0.0.1: Shutting down server upon client request...", + "identifier": "RestQueryHandler", + "message": "Shutting down server upon client request...", + "timestamp": 1601316640, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<28.09.2020 - 20:10:00> [RestQueryHandler] @127.0.0.1: Fetching logs...", + "identifier": "RestQueryHandler", + "message": "Fetching logs...", + "timestamp": 1601316600, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<28.09.2020 - 20:09:53> [RestQueryHandler] @127.0.0.1: Cleared logs...", + "identifier": "RestQueryHandler", + "message": "Cleared logs...", + "timestamp": 1601316593, + "type": 0 + } + ], + "logs_size": 274, + "status": "OK" +} \ No newline at end of file diff --git a/Tubio/frontend/settings/index.html b/Tubio/frontend/settings/index.html new file mode 100644 index 0000000..15236b5 --- /dev/null +++ b/Tubio/frontend/settings/index.html @@ -0,0 +1,9 @@ + + + + Tubio - Video downloader + + +

Settings

Show console

Use account

Username

Password

Limit speed

Max speed

Download threads

Disk usage

Downloads:

759 mb

Logs:

9 mb

Dependencies:

312 mb

Misc:

3 mb

Total:

1567 mb

Clear downloads
Clear logs

Logs

+ + diff --git a/tubio-frontend-nuxt-app/.nvmrc b/tubio-frontend-nuxt-app/.nvmrc new file mode 100644 index 0000000..9631d5d --- /dev/null +++ b/tubio-frontend-nuxt-app/.nvmrc @@ -0,0 +1 @@ +v10.19.0 diff --git a/tubio-frontend-nuxt-app/components/DownloadBox.vue b/tubio-frontend-nuxt-app/components/DownloadBox.vue index 69ee201..4a4dcdd 100644 --- a/tubio-frontend-nuxt-app/components/DownloadBox.vue +++ b/tubio-frontend-nuxt-app/components/DownloadBox.vue @@ -2,7 +2,7 @@

No downloads yet...

- +
@@ -17,8 +17,8 @@ export default { }, computed: { - downloads_c: function() { - return this.downloads; + dlcache: function() { + return this.$store.state.dlcache.cache; } }, @@ -30,15 +30,10 @@ export default { mounted() { const that = this; - axios.get("/rest-dummies/cache.json", { - responseType: 'text' - }).then(function(response){ - if (response.data.status === "OK") { - console.log(response.data); - that.downloads = response.data.cache; - } - }); - + this.$store.dispatch("dlcache/update", this); + setInterval(function(){ + that.$store.dispatch("dlcache/update", that); + }, 1000); return; } diff --git a/tubio-frontend-nuxt-app/components/DownloadEntry.vue b/tubio-frontend-nuxt-app/components/DownloadEntry.vue index 725e9ff..fb6888c 100644 --- a/tubio-frontend-nuxt-app/components/DownloadEntry.vue +++ b/tubio-frontend-nuxt-app/components/DownloadEntry.vue @@ -15,7 +15,7 @@ -
+
@@ -65,15 +65,17 @@ -
+

{{downloadEntry.title}}

+

- {{downloadEntry.description}} +

+
@@ -87,6 +89,7 @@ import IconDownload from "~/components/Icons/download.vue"; import IconX from "~/components/Icons/x.vue"; import IconFilm from "~/components/Icons/film.vue"; import IconMusic from "~/components/Icons/music-note.vue"; +import axios from "axios"; export default { components: { @@ -109,10 +112,24 @@ export default { }, getDurationString: function(unixTime) { const time = new Date(unixTime * 1000); - const hours = ("0" + (time.getHours() - 1)).slice(-2); + const hours = String((time.getHours() - 1)); const minutes = ("0" + (time.getMinutes())).slice(-2); const seconds = ("0" + (time.getSeconds())).slice(-2); - return ((hours !== "0") ? hours : "") + ":" + minutes + ":" + seconds; + return ((hours !== "0") ? (hours + ":") : "") + minutes + ":" + seconds; + }, + linebreaksToBrTags: function(str) { + return str.replace("\n", '
'); + }, + removeDownload: function() { + const that = this; + axios.post("/api", { + request: "remove_download_entry", + id: this.downloadEntry.tubio_id + }).then(function(response) { + if (response.data.status === "OK") { + that.$store.dispatch("dlcache/update", that); + } + }); }, }, } @@ -137,7 +154,6 @@ export default { width: 150px; height: calc(150px * (9 / 16)); position: relative; - transition: transform 0.2s, background-image 1s ease-in-out; cursor: pointer; scrollbar-width: none; diff --git a/tubio-frontend-nuxt-app/components/LogBox.vue b/tubio-frontend-nuxt-app/components/LogBox.vue index 2285692..b2ffa73 100644 --- a/tubio-frontend-nuxt-app/components/LogBox.vue +++ b/tubio-frontend-nuxt-app/components/LogBox.vue @@ -1,13 +1,9 @@ @@ -17,6 +13,21 @@ import LogEntry from "~/components/LogEntry"; export default { components: { LogEntry, + }, + + computed: { + logs: function() { + return this.$store.state.logs.logs; + } + }, + + mounted() { + const that = this; + this.$store.dispatch("logs/update", this); + setInterval(function(){ + that.$store.dispatch("logs/update", that); + }, 1000); + return; } } diff --git a/tubio-frontend-nuxt-app/nuxt.config.js b/tubio-frontend-nuxt-app/nuxt.config.js index af56123..ecfb046 100644 --- a/tubio-frontend-nuxt-app/nuxt.config.js +++ b/tubio-frontend-nuxt-app/nuxt.config.js @@ -3,7 +3,7 @@ export default { target: 'static', generate: { - dir: "web" + dir: "../Tubio/frontend/" }, server: { diff --git a/tubio-frontend-nuxt-app/pages/index.vue b/tubio-frontend-nuxt-app/pages/index.vue index 05f21c4..595a9d4 100644 --- a/tubio-frontend-nuxt-app/pages/index.vue +++ b/tubio-frontend-nuxt-app/pages/index.vue @@ -7,12 +7,22 @@
-
- +
+ -
+
+ +
+ +
+ +
+
@@ -26,6 +36,7 @@ import Logo from "~/components/Logo"; import Spacer from "~/components/Spacer"; import DownloadBox from "~/components/DownloadBox"; import IconArrowRightSquare from "~/components/Icons/arrow-right-square"; +import axios from "axios"; export default { components: { @@ -33,6 +44,28 @@ export default { Spacer, DownloadBox, IconArrowRightSquare, + }, + + methods: { + downloadButtonClicked: function(){ + + const that = this; + if (this.$refs.video_url.value.match(/(https?:\/\/)?[a-zA-Z0-9-_.]+\.[a-zA-Z-_.]+/)) { + const url = this.$refs.video_url.value; + this.$refs.video_url.value = ""; + axios.post("/api", { + request: "queue_download", + video_url: url, + mode: this.$refs.mode.options[this.$refs.mode.selectedIndex].value + }).then(function(response){ + if (response.data.status === "OK") { + that.$store.dispatch("dlcache/update", that); + } + }); + } + + return; + } } }; @@ -120,4 +153,13 @@ input { } } +.dropdown { + min-width: 100px; + height: 100%; + border-radius: 5px; + cursor: pointer; + font-family: ZillaSlab, serif; + font-size: 16pt; +} + diff --git a/tubio-frontend-nuxt-app/pages/settings.vue b/tubio-frontend-nuxt-app/pages/settings.vue index 948f450..d310aa5 100644 --- a/tubio-frontend-nuxt-app/pages/settings.vue +++ b/tubio-frontend-nuxt-app/pages/settings.vue @@ -75,8 +75,8 @@ -
Clear downloads
-
Clear logs
+
Clear downloads
+
Clear logs
@@ -94,6 +94,7 @@ diff --git a/tubio-frontend-nuxt-app/static/rest-dummies/logs.json b/tubio-frontend-nuxt-app/static/rest-dummies/logs.json new file mode 100644 index 0000000..2fe87aa --- /dev/null +++ b/tubio-frontend-nuxt-app/static/rest-dummies/logs.json @@ -0,0 +1,2198 @@ +{ + "logs": [ + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 18:09:23> [RestQueryHandler] @127.0.0.1: Fetching logs...", + "identifier": "RestQueryHandler", + "message": "Fetching logs...", + "timestamp": 1601482163, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:39> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481639, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:39> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481639, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:29> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481629, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:29> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481629, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 18:00:23> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601481623, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:23> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481623, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:23> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481623, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:12> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481612, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 18:00:12> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481612, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:58> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601481598, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:53> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "timestamp": 1601481593, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:47> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=c3wRzxiQ8Zk&ab_channel=KarlSternau\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=c3wRzxiQ8Zk&ab_channel=KarlSternau\"...", + "timestamp": 1601481587, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:38> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY&ab_channel=LilDicky\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY&ab_channel=LilDicky\"...", + "timestamp": 1601481578, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:31> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "timestamp": 1601481571, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:22> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601481562, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:16> [DownloadManager]: Clearing download cache...", + "identifier": "DownloadManager", + "message": "Clearing download cache...", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:16> [RestQueryHandler] @127.0.0.1: Clearing download cache...", + "identifier": "RestQueryHandler", + "message": "Clearing download cache...", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:16> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:16> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:16> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:16> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481556, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:59:03> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "timestamp": 1601481543, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:01> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481541, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:01> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481541, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:01> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481541, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:01> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481541, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:59:01> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481541, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:57:44> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "timestamp": 1601481464, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:57:42> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481462, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:57:42> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481462, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:57:42> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481462, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:57:42> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481462, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:57:42> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481462, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:56:45> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "timestamp": 1601481405, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:56:44> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481404, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:56:44> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481404, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:56:44> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481404, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:56:44> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481404, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:56:44> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481404, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:54:22> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=XbGs_qK2PQA&ab_channel=EminemVEVO\"...", + "timestamp": 1601481262, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:16> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481256, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:16> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481256, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:16> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481256, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:16> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481256, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:54:07> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/c3wRzxiQ8Zk\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/c3wRzxiQ8Zk\"...", + "timestamp": 1601481247, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:02> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:02> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:02> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:02> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:54:02> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:51> [Config]: Saving config...", + "identifier": "Config", + "message": "Saving config...", + "timestamp": 1601481231, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:51> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481231, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:51> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481231, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:51> [HttpServer]: Shutting down http-server...", + "identifier": "HttpServer", + "message": "Shutting down http-server...", + "timestamp": 1601481231, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:53:51> [RestQueryHandler] @127.0.0.1: Shutting down server upon client request...", + "identifier": "RestQueryHandler", + "message": "Shutting down server upon client request...", + "timestamp": 1601481231, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:23> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481203, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:23> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481203, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:23> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481203, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:23> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481203, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:10> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601481190, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:10> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601481190, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:10> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601481190, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:53:10> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601481190, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:53:01> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/yvHYWD29ZNY\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/yvHYWD29ZNY\"...", + "timestamp": 1601481181, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:52:47> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "timestamp": 1601481167, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:42> [DownloadManager]: Clearing download cache...", + "identifier": "DownloadManager", + "message": "Clearing download cache...", + "timestamp": 1601481162, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:52:42> [RestQueryHandler] @127.0.0.1: Clearing download cache...", + "identifier": "RestQueryHandler", + "message": "Clearing download cache...", + "timestamp": 1601481162, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:36> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481156, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:36> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481156, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:36> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481156, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:36> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481156, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:52:36> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481156, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:52:02> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY&ab_channel=LilDicky\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY&ab_channel=LilDicky\"...", + "timestamp": 1601481122, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:51:48> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/34CZjsEI1yU\"...", + "timestamp": 1601481108, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:51:46> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601481106, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:51:46> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601481106, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:51:46> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601481106, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:51:46> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601481106, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:51:46> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601481106, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:18:44> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601479124, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:42> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601479122, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:42> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601479122, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:42> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601479122, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:42> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601479122, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:42> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601479122, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 17:18:15> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601479095, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:11> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601479091, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:11> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601479091, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:11> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601479091, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:11> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601479091, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 17:18:11> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601479091, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:43:23> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601473403, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:21> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601473401, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:21> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601473401, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:21> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601473401, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:21> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601473401, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:43:12> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601473392, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:10> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601473390, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:10> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601473390, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:10> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601473390, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:43:09> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601473389, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:43:06> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=34CZjsEI1yU\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=34CZjsEI1yU\"...", + "timestamp": 1601473386, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:42:52> [RestQueryHandler] @127.0.0.1: Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://www.youtube.com/watch?v=yvHYWD29ZNY\"...", + "timestamp": 1601473372, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:42:50> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601473370, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:42:50> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601473370, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:42:50> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601473370, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:42:50> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601473370, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:42:41> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/c3wRzxiQ8Zk\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/c3wRzxiQ8Zk\"...", + "timestamp": 1601473361, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:42:01> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601473321, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:41:53> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601473313, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:41:53> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601473313, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:41:53> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601473313, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 15:41:53> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601473313, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:41:38> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/XbGs_qK2PQA\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/XbGs_qK2PQA\"...", + "timestamp": 1601473298, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:41:16> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601473276, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 15:25:38> [RestQueryHandler] @127.0.0.1: Fetching logs...", + "identifier": "RestQueryHandler", + "message": "Fetching logs...", + "timestamp": 1601472338, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 14:56:05> [RestQueryHandler] @127.0.0.1: Fetching disk usage...", + "identifier": "RestQueryHandler", + "message": "Fetching disk usage...", + "timestamp": 1601470565, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 14:55:58> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601470558, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 14:55:58> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601470558, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 14:55:58> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601470558, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 14:55:58> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601470558, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 14:55:58> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601470558, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:26:57> [Config]: Saving config...", + "identifier": "Config", + "message": "Saving config...", + "timestamp": 1601465217, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:26:57> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601465217, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:26:57> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601465217, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:26:57> [HttpServer]: Shutting down http-server...", + "identifier": "HttpServer", + "message": "Shutting down http-server...", + "timestamp": 1601465217, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:26:57> [RestQueryHandler] @127.0.0.1: Shutting down server upon client request...", + "identifier": "RestQueryHandler", + "message": "Shutting down server upon client request...", + "timestamp": 1601465217, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:22:09> [DownloadManager]: Clearing download cache...", + "identifier": "DownloadManager", + "message": "Clearing download cache...", + "timestamp": 1601464929, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:22:09> [RestQueryHandler] @127.0.0.1: Clearing download cache...", + "identifier": "RestQueryHandler", + "message": "Clearing download cache...", + "timestamp": 1601464929, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:22:04> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601464924, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:22:04> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601464924, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:22:04> [RestQueryHandler] @127.0.0.1: Removing download id 1KnnMe...", + "identifier": "RestQueryHandler", + "message": "Removing download id 1KnnMe...", + "timestamp": 1601464924, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:50> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601464910, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:50> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601464910, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:21:50> [RestQueryHandler] @127.0.0.1: Removing download id 1KnnPb...", + "identifier": "RestQueryHandler", + "message": "Removing download id 1KnnPb...", + "timestamp": 1601464910, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:21:37> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601464897, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:23> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601464883, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:23> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601464883, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:21:23> [RestQueryHandler] @127.0.0.1: Removing download id 1KnnPV...", + "identifier": "RestQueryHandler", + "message": "Removing download id 1KnnPV...", + "timestamp": 1601464883, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:20> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601464880, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:20> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601464880, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:20> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601464880, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:20> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601464880, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:21:20> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601464880, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:20:00> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601464800, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:19:47> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601464787, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:19:21> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601464761, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:19:21> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601464761, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:19:21> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601464761, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:19:21> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601464761, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:19:21> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601464761, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:15:29> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601464529, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:15:20> [RestQueryHandler] @127.0.0.1: Removing download id 1KnnPV...", + "identifier": "RestQueryHandler", + "message": "Removing download id 1KnnPV...", + "timestamp": 1601464520, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:14:50> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601464490, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:14:47> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601464487, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:14:34> [RestQueryHandler] @127.0.0.1: Fetching session logs...", + "identifier": "RestQueryHandler", + "message": "Fetching session logs...", + "timestamp": 1601464474, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:14:26> [RestQueryHandler] @127.0.0.1: Removing download id penis...", + "identifier": "RestQueryHandler", + "message": "Removing download id penis...", + "timestamp": 1601464466, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 13:14:25> [RestQueryHandler] @127.0.0.1: Removing download id penis...", + "identifier": "RestQueryHandler", + "message": "Removing download id penis...", + "timestamp": 1601464465, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:13:52> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601464432, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:13:52> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601464432, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:13:52> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601464432, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:13:52> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601464432, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 13:13:52> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601464432, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:12:55> [Config]: Saving config...", + "identifier": "Config", + "message": "Saving config...", + "timestamp": 1601417575, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:12:55> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601417575, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:12:55> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601417575, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:12:55> [HttpServer]: Shutting down http-server...", + "identifier": "HttpServer", + "message": "Shutting down http-server...", + "timestamp": 1601417575, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:55> [RestQueryHandler] @127.0.0.1: Shutting down server upon client request...", + "identifier": "RestQueryHandler", + "message": "Shutting down server upon client request...", + "timestamp": 1601417575, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:50> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417570, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:46> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417566, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:43> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417563, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:39> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417559, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:32> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417552, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:12:23> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417543, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:11:47> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601417507, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:11:14> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601417474, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:11:14> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601417474, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:11:14> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601417474, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:11:14> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601417474, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:11:03> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/wgfNsek8xkc\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/wgfNsek8xkc\"...", + "timestamp": 1601417463, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:24> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601417424, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:24> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601417424, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:24> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601417424, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:24> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601417424, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:20> [DownloadManager] [WARN]: Dependency ffprobe.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "identifier": "DownloadManager", + "message": "Dependency ffprobe.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "timestamp": 1601417420, + "type": 1 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:20> [DownloadManager] [WARN]: Dependency ffplay.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "identifier": "DownloadManager", + "message": "Dependency ffplay.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "timestamp": 1601417420, + "type": 1 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:10:20> [DownloadManager] [WARN]: Dependency ffmpeg.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "identifier": "DownloadManager", + "message": "Dependency ffmpeg.exe missing! (Get it here: https://www.gyan.dev/ffmpeg/builds/). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "timestamp": 1601417420, + "type": 1 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:10:17> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601417417, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:07:22> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601417242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:07:22> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601417242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:07:22> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601417242, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:07:22> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601417242, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:07:14> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601417234, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:07:09> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601417229, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:07:07> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601417227, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:06:31> [DownloadManager] [WARN]: Dependency youtube-dl.exe missing! Try updating it! (\"request\": \"update_dep_youtubedl\"). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "identifier": "DownloadManager", + "message": "Dependency youtube-dl.exe missing! Try updating it! (\"request\": \"update_dep_youtubedl\"). Dependencies HAVE to lie in Tubios working directory! (where the config.json is)", + "timestamp": 1601417191, + "type": 1 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:06:31> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601417191, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:06:01> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601417161, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:06:01> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601417161, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:06:01> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601417161, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:06:01> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601417161, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<30.09.2020 - 00:05:53> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601417153, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:05:46> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601417146, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:05:46> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601417146, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:05:46> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601417146, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:05:46> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601417146, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<30.09.2020 - 00:05:46> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601417146, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:52> [Config]: Saving config...", + "identifier": "Config", + "message": "Saving config...", + "timestamp": 1601416612, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:52> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601416612, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:52> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601416612, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:52> [HttpServer]: Shutting down http-server...", + "identifier": "HttpServer", + "message": "Shutting down http-server...", + "timestamp": 1601416612, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:56:52> [RestQueryHandler] @127.0.0.1: Shutting down server upon client request...", + "identifier": "RestQueryHandler", + "message": "Shutting down server upon client request...", + "timestamp": 1601416612, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:56:08> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416568, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:04> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601416564, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:04> [DownloadManager]: All threads have finished. Now saving...", + "identifier": "DownloadManager", + "message": "All threads have finished. Now saving...", + "timestamp": 1601416564, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:04> [DownloadManager]: Waiting for active download threads to finish before saving...", + "identifier": "DownloadManager", + "message": "Waiting for active download threads to finish before saving...", + "timestamp": 1601416564, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:56:04> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601416564, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:56:03> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416563, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:57> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601416557, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:53> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601416553, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:51> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601416551, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:13> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416513, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:10> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601416510, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:55:04> [RestQueryHandler] @127.0.0.1: Asking for whole cache...", + "identifier": "RestQueryHandler", + "message": "Asking for whole cache...", + "timestamp": 1601416504, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:58> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416498, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:54> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416494, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:50> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416490, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:46> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416486, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:44> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601416484, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:37> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416477, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:54:32> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601416472, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:54:32> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601416472, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:54:32> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601416472, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:54:32> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601416472, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:54:32> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601416472, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:54:11> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416451, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:53:52> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416432, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:53:48> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601416428, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:53:43> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416423, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:53:39> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601416419, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:53:39> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601416419, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:53:39> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601416419, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:53:39> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601416419, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:53:39> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601416419, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:51:24> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416284, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:49:56> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416196, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:49:40> [RestQueryHandler] @127.0.0.1: Asking for session cache...", + "identifier": "RestQueryHandler", + "message": "Asking for session cache...", + "timestamp": 1601416180, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:49:11> [RestQueryHandler] @127.0.0.1: Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "identifier": "RestQueryHandler", + "message": "Queued video \"https://youtu.be/OF-thWTJcu0\"...", + "timestamp": 1601416151, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:48> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601416128, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:48> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601416128, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:13> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601416093, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:13> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601416093, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:10> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601416090, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:10> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601416090, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:48:02> [RestQueryHandler] @127.0.0.1: => OK!", + "identifier": "RestQueryHandler", + "message": " => OK!", + "timestamp": 1601416082, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<29.09.2020 - 23:47:59> [RestQueryHandler] @127.0.0.1: Updating youtube-dl...", + "identifier": "RestQueryHandler", + "message": "Updating youtube-dl...", + "timestamp": 1601416079, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:46:37> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601415997, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:46:37> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601415997, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:46:37> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601415997, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:46:37> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601415997, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:46:37> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601415997, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:45:15> [Framework]: Started Tubio server successfully!", + "identifier": "Framework", + "message": "Started Tubio server successfully!", + "timestamp": 1601415915, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:45:15> [HttpServer]: Started http-server successfully!", + "identifier": "HttpServer", + "message": "Started http-server successfully!", + "timestamp": 1601415915, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:45:15> [HttpServer]: Starting http-server on port 6969...", + "identifier": "HttpServer", + "message": "Starting http-server on port 6969...", + "timestamp": 1601415915, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:45:15> [Framework]: Starting Tubio server...", + "identifier": "Framework", + "message": "Starting Tubio server...", + "timestamp": 1601415915, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<29.09.2020 - 23:45:15> [Config]: Loaded config file", + "identifier": "Config", + "message": "Loaded config file", + "timestamp": 1601415915, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<28.09.2020 - 20:10:40> [Config]: Saving config...", + "identifier": "Config", + "message": "Saving config...", + "timestamp": 1601316640, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<28.09.2020 - 20:10:40> [DownloadManager]: Saved!", + "identifier": "DownloadManager", + "message": "Saved!", + "timestamp": 1601316640, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<28.09.2020 - 20:10:40> [DownloadManager]: Saving...", + "identifier": "DownloadManager", + "message": "Saving...", + "timestamp": 1601316640, + "type": 0 + }, + { + "additional_information": "", + "compiledMessage": "<28.09.2020 - 20:10:40> [HttpServer]: Shutting down http-server...", + "identifier": "HttpServer", + "message": "Shutting down http-server...", + "timestamp": 1601316640, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<28.09.2020 - 20:10:40> [RestQueryHandler] @127.0.0.1: Shutting down server upon client request...", + "identifier": "RestQueryHandler", + "message": "Shutting down server upon client request...", + "timestamp": 1601316640, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<28.09.2020 - 20:10:00> [RestQueryHandler] @127.0.0.1: Fetching logs...", + "identifier": "RestQueryHandler", + "message": "Fetching logs...", + "timestamp": 1601316600, + "type": 0 + }, + { + "additional_information": "@127.0.0.1", + "compiledMessage": "<28.09.2020 - 20:09:53> [RestQueryHandler] @127.0.0.1: Cleared logs...", + "identifier": "RestQueryHandler", + "message": "Cleared logs...", + "timestamp": 1601316593, + "type": 0 + } + ], + "logs_size": 274, + "status": "OK" +} \ No newline at end of file diff --git a/tubio-frontend-nuxt-app/store/dlcache.js b/tubio-frontend-nuxt-app/store/dlcache.js new file mode 100644 index 0000000..8bfc443 --- /dev/null +++ b/tubio-frontend-nuxt-app/store/dlcache.js @@ -0,0 +1,24 @@ +import axios from 'axios'; + +export const state = () => ({ + cache: [] +}); + +export const mutations = { + update(state, data) { + state.cache = data; + }, +}; + +export const actions = { + update(context, instance) { + axios.post("/api", { + request: "fetch_alltime_cache" + }) + .then(function(response) { + if (response.data.status === "OK") { + instance.$store.commit("dlcache/update", response.data.cache); + } + }); + }, +}; diff --git a/tubio-frontend-nuxt-app/store/logs.js b/tubio-frontend-nuxt-app/store/logs.js new file mode 100644 index 0000000..6176c29 --- /dev/null +++ b/tubio-frontend-nuxt-app/store/logs.js @@ -0,0 +1,24 @@ +import axios from 'axios'; + +export const state = () => ({ + logs: [] +}); + +export const mutations = { + update(state, data) { + state.logs = data; + }, +}; + +export const actions = { + update(context, instance) { + axios.post("/api", { + request: "fetch_session_logs" + }) + .then(function(response) { + if (response.data.status === "OK") { + instance.$store.commit("logs/update", response.data.logs); + } + }); + }, +};