From 9cea4e42e4619d0724f636d040c94128b181f719 Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Sat, 30 May 2020 19:24:24 +0200 Subject: Added debian/ --- Makefile | 12 ++++- debian/README.Debian | 6 +-- debian/control | 2 +- debian/downtube.service | 13 ++++++ debian/rules | 4 -- debian/webserver.install | 1 - debian/webserver.service | 19 -------- html/Downtube.png | Bin 0 -> 40244 bytes html/Downtube1024.png | Bin 0 -> 19108 bytes html/Downtube256.png | Bin 0 -> 4216 bytes html/Downtube320.png | Bin 0 -> 5256 bytes html/Downtube512.png | Bin 0 -> 8874 bytes html/downtube.css | 69 +++++++++++++++++++++++++++++ html/downtube.js | 112 +++++++++++++++++++++++++++++++++++++++++++++++ html/index.html | 53 ++++++++++++++++++++++ 15 files changed, 262 insertions(+), 29 deletions(-) create mode 100644 debian/downtube.service delete mode 100644 debian/webserver.install delete mode 100644 debian/webserver.service create mode 100644 html/Downtube.png create mode 100644 html/Downtube1024.png create mode 100644 html/Downtube256.png create mode 100644 html/Downtube320.png create mode 100644 html/Downtube512.png create mode 100644 html/downtube.css create mode 100644 html/downtube.js create mode 100644 html/index.html diff --git a/Makefile b/Makefile index c3a4d5f..657afe5 100755 --- a/Makefile +++ b/Makefile @@ -24,12 +24,22 @@ all: build ./start.sh install: + mkdir -p $(DESTDIR)/usr/lib/downtube + cp downtube.fcgi $(DESTDIR)/usr/lib/downtube/ + + mkdir -p $(DESTDIR)/usr/lib/downtube/html + cp -r html/* $(DESTDIR)/usr/lib/downtube/html/ + + uglifyjs html/downtube.js -m -c > $(DESTDIR)/usr/lib/downtube/html/downtube.js + htmlmin html/index.html $(DESTDIR)/usr/lib/downtube/html/index.html + cleancss -o $(DESTDIR)/usr/lib/downtube/html/downtube.css html/downtube.css + downtube.fcgi: $(OBJECTS) # link %.fcgi: %.o - $(CXX) $(CFLAGS) $(LIBS) -o $@ $^ + $(CXX) $(CPPFLAGS) $(LIBS) -o $@ $^ # .cpp -> .o %.o: %.cpp diff --git a/debian/README.Debian b/debian/README.Debian index 35011f3..1bd0c56 100644 --- a/debian/README.Debian +++ b/debian/README.Debian @@ -1,7 +1,7 @@ -webserver for Debian -==================== +downtube for Debian +=================== -This package is the Debian version of webserver. +This package is the Debian version of downtube. Contact diff --git a/debian/control b/debian/control index 62c1a48..09493df 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Homepage: http://www.reichwein.it/downtube/ Package: downtube Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, ${misc:Depends}, spawn-fcgi Homepage: http://www.reichwein.it/downtube/ Description: Web application for video download Downtube can help you download a video specified in a HTML form, transformed diff --git a/debian/downtube.service b/debian/downtube.service new file mode 100644 index 0000000..7c3154a --- /dev/null +++ b/debian/downtube.service @@ -0,0 +1,13 @@ +[Unit] +Description=DownTube +After=network.target + +[Service] +Type=simple +# Restart=always +ExecStart=spawn-fcgi -a 127.0.0.1 -p 9004 -n -- /usr/lib/downtube/downtube.fcgi + +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/debian/rules b/debian/rules index 921ee04..2d33f6a 100755 --- a/debian/rules +++ b/debian/rules @@ -2,7 +2,3 @@ %: dh $@ - -override_dh_fixperms: - dh_fixperms - chown www-data:www-data debian/webserver/var/lib/webserver diff --git a/debian/webserver.install b/debian/webserver.install deleted file mode 100644 index b4997f3..0000000 --- a/debian/webserver.install +++ /dev/null @@ -1 +0,0 @@ -debian/webserver.conf etc diff --git a/debian/webserver.service b/debian/webserver.service deleted file mode 100644 index 7834650..0000000 --- a/debian/webserver.service +++ /dev/null @@ -1,19 +0,0 @@ -[Unit] -Description=Webserver -After=network.target - -[Service] -Type=simple -# Restart=always -ExecStart=/usr/bin/webserver -c /etc/webserver.conf - -# Restart once a week, maybe certificates have changed -Restart=always -RuntimeMaxSec=604800 - -# webserver will lower privileges to www-data:www-data -#User=www-data -#Group=www-data - -[Install] -WantedBy=multi-user.target diff --git a/html/Downtube.png b/html/Downtube.png new file mode 100644 index 0000000..4b2d0b7 Binary files /dev/null and b/html/Downtube.png differ diff --git a/html/Downtube1024.png b/html/Downtube1024.png new file mode 100644 index 0000000..574a352 Binary files /dev/null and b/html/Downtube1024.png differ diff --git a/html/Downtube256.png b/html/Downtube256.png new file mode 100644 index 0000000..44da8e6 Binary files /dev/null and b/html/Downtube256.png differ diff --git a/html/Downtube320.png b/html/Downtube320.png new file mode 100644 index 0000000..254b362 Binary files /dev/null and b/html/Downtube320.png differ diff --git a/html/Downtube512.png b/html/Downtube512.png new file mode 100644 index 0000000..6ebd151 Binary files /dev/null and b/html/Downtube512.png differ diff --git a/html/downtube.css b/html/downtube.css new file mode 100644 index 0000000..2f68794 --- /dev/null +++ b/html/downtube.css @@ -0,0 +1,69 @@ +body { + font-family: "sans-serif"; +} + +figcaption { + text-align: center; + font-size: 8px; + color: #808080; +} + +figure { + display: inline-block; +} + +p { + margin: 30px 0px 30px 0px; +} + +div.status { + color: #FF0000; +} + +.mobile { + width: 300px; + border-width: 80px 15px 80px 15px; + border-style: solid; + border-radius: 30px; + border-color: #000000; +} + +.logo { + display: block; + margin: 0 auto; +} + +.screenshot { + width: 400px; + border: 2px solid; + border-color: #8888AA; +} + +img.banner { + vertical-align: -5px; +} + +.button { + color:#FFFFFF; + background-color:#50B050; + text-decoration: none; + padding: 15px 20px; + font-size: 16px; + border: none; + border-radius: 6px; + cursor: pointer; +} + +@media only screen and (min-width: 1px) and (max-width: 630px) { +} + +@media only screen and (min-width: 631px) and (max-width: 950px) { +} + +@media only screen and (min-width: 951px) { + div.page { + max-width: 950px; + width: 100%; + margin: 0 auto; + } +} diff --git a/html/downtube.js b/html/downtube.js new file mode 100644 index 0000000..abe62b8 --- /dev/null +++ b/html/downtube.js @@ -0,0 +1,112 @@ +// started on main page load +function init() { + + // Connect "Enter" in text field with Button click + var url = document.getElementById("url"); + url.addEventListener("keyup", function(event) { + if (event.keyCode === 13) { + event.preventDefault(); + on_start(); + } + }); +} + +function set_status(message) { + if (message == "") + message = " "; + + document.getElementById("status").innerHTML = message; +} + +// started on button click: get filename +function on_start() { + var xhr = new XMLHttpRequest(); + + // run on data received back + xhr.onreadystatechange = function() { + if (this.readyState != 4) { + return; + } + if (this.status != 200) { + set_status("Server Error while retrieving filename"); + return; + } + + var filename = this.responseText; + + get_file(filename); + } + + var parser = new DOMParser(); + var xmlDocument = parser.parseFromString("", "text/xml"); + + var requestElement = xmlDocument.getElementsByTagName("request")[0]; + + var commandElement = xmlDocument.createElement("command"); + commandElement.appendChild(document.createTextNode("getfilename")); + requestElement.appendChild(commandElement); + + var urlElement = xmlDocument.createElement("url"); + urlElement.appendChild(document.createTextNode(document.getElementById("url").value)); + requestElement.appendChild(urlElement); + + var formatElement = xmlDocument.createElement("format"); + formatElement.appendChild(document.createTextNode(document.getElementById("mp3").checked ? "mp3" : "mp4")); + requestElement.appendChild(formatElement); + + xhr.open("POST", "downtube.fcgi", true); + xhr.setRequestHeader("Content-type", "text/xml"); + xhr.responseType = 'text'; + xhr.send(xmlDocument); + + set_status("Please wait while retrieving filename..."); +} + +// started on button click: get file +function get_file(filename) { + var xhr = new XMLHttpRequest(); + + // run on data received back + xhr.onreadystatechange = function() { + if (this.readyState != 4) { + return; + } + if (this.status != 200) { + set_status("Server Error while retrieving " + filename); + return; + } + + var a = document.getElementById("download-a"); + a.setAttribute("download", filename); + var file = new Blob([this.response]); + a.href = window.URL.createObjectURL(file); + a.click(); + + set_status(""); // OK + } + + var parser = new DOMParser(); + var xmlDocument = parser.parseFromString("", "text/xml"); + + var requestElement = xmlDocument.getElementsByTagName("request")[0]; + + var commandElement = xmlDocument.createElement("command"); + commandElement.appendChild(document.createTextNode("getfile")); + requestElement.appendChild(commandElement); + + var urlElement = xmlDocument.createElement("url"); + urlElement.appendChild(document.createTextNode(document.getElementById("url").value)); + requestElement.appendChild(urlElement); + + var formatElement = xmlDocument.createElement("format"); + formatElement.appendChild(document.createTextNode(document.getElementById("mp3").checked ? "mp3" : "mp4")); + requestElement.appendChild(formatElement); + + xhr.open("POST", "downtube.fcgi", true); + xhr.setRequestHeader("Content-type", "text/xml"); + xhr.responseType = 'blob'; + xhr.send(xmlDocument); + + set_status("Please wait while retrieving " + filename + " ..."); +} + diff --git a/html/index.html b/html/index.html new file mode 100644 index 0000000..05ab9d6 --- /dev/null +++ b/html/index.html @@ -0,0 +1,53 @@ + + + + + + + DownTube + + + + + +
+

+ +

+ Video URL:
+

+

+ +

+ Transform to format:
+ +
+ +
+

+ +
+
 
+

+ +

+ +
+
+
+
+
+
+
+
+

Contact

+ Roland Reichwein
+ Hauptstr. 101a
+ 82008 Unterhaching
+ mail@reichwein.it
+ https://www.reichwein.it
+
+ + + + -- cgit v1.2.3