diff options
| author | Roland Reichwein <mail@reichwein.it> | 2020-05-30 19:24:24 +0200 | 
|---|---|---|
| committer | Roland Reichwein <mail@reichwein.it> | 2020-05-30 19:24:24 +0200 | 
| commit | 9cea4e42e4619d0724f636d040c94128b181f719 (patch) | |
| tree | e710e8f581bb82ea704b0ffa7c462335bed4fd98 | |
| parent | 28e590d5c2d6d3bb38eae7cb1978af233ecb5f64 (diff) | |
Added debian/
| -rwxr-xr-x | Makefile | 12 | ||||
| -rw-r--r-- | debian/README.Debian | 6 | ||||
| -rw-r--r-- | debian/control | 2 | ||||
| -rw-r--r-- | debian/downtube.service | 13 | ||||
| -rwxr-xr-x | debian/rules | 4 | ||||
| -rw-r--r-- | debian/webserver.install | 1 | ||||
| -rw-r--r-- | debian/webserver.service | 19 | ||||
| -rw-r--r-- | html/Downtube.png | bin | 0 -> 40244 bytes | |||
| -rw-r--r-- | html/Downtube1024.png | bin | 0 -> 19108 bytes | |||
| -rw-r--r-- | html/Downtube256.png | bin | 0 -> 4216 bytes | |||
| -rw-r--r-- | html/Downtube320.png | bin | 0 -> 5256 bytes | |||
| -rw-r--r-- | html/Downtube512.png | bin | 0 -> 8874 bytes | |||
| -rw-r--r-- | html/downtube.css | 69 | ||||
| -rw-r--r-- | html/downtube.js | 112 | ||||
| -rw-r--r-- | html/index.html | 53 | 
15 files changed, 262 insertions, 29 deletions
| @@ -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.pngBinary files differ new file mode 100644 index 0000000..4b2d0b7 --- /dev/null +++ b/html/Downtube.png diff --git a/html/Downtube1024.png b/html/Downtube1024.pngBinary files differ new file mode 100644 index 0000000..574a352 --- /dev/null +++ b/html/Downtube1024.png diff --git a/html/Downtube256.png b/html/Downtube256.pngBinary files differ new file mode 100644 index 0000000..44da8e6 --- /dev/null +++ b/html/Downtube256.png diff --git a/html/Downtube320.png b/html/Downtube320.pngBinary files differ new file mode 100644 index 0000000..254b362 --- /dev/null +++ b/html/Downtube320.png diff --git a/html/Downtube512.png b/html/Downtube512.pngBinary files differ new file mode 100644 index 0000000..6ebd151 --- /dev/null +++ b/html/Downtube512.png 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("<request></request>", "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("<request></request>", "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 @@ +<!DOCTYPE html> +<html> +	<head> +		<meta charset="utf-8"/> +		<meta name="viewport" content="width=device-width, initial-scale=1"> +		<meta name="keywords" content="Reichwein, DownTube, YouTube, Download MP3"> +		<title>DownTube</title> +		<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/> +		<link rel="stylesheet" type="text/css" href="downtube.css"/> +		<script src="downtube.js"></script> +	</head> +	<body onload="init();"> +		<div class="page"> +			<h1><img src="Downtube256.png"></h1> + +			<p> +			Video URL:<br/> +			<input size="40" type="text" id="url" name="url"><br><br> +			</p> + +			<p> +			Transform to format:<br/> +                        <input type="radio" id="mp3" name="format" value="mp3" checked> +                        <label for="mp3">MP3 (Audio)</label><br> +                        <input type="radio" id="mp4" name="format" value="mp4"> +                        <label for="mp4">MP4 (Video)</label><br> +			</p> + +			<br/> +			<div class="status" id="status"> </div> +			<p> +			<button class="button" onclick="on_start();">Start</button> +			</p> + +			<br/> +			<br/> +			<br/> +			<br/> +			<br/> +			<br/> +			<br/> +			<br/> +			<h2>Contact</h2> +			Roland Reichwein<br/> +			Hauptstr. 101a<br/> +			82008 Unterhaching<br/> +			<a href="mailto:mail@reichwein.it">mail@reichwein.it</a><br/> +			<a href="https://www.reichwein.it">https://www.reichwein.it</a><br/> +		</div> + +		<a id="download-a" hidden></a> +	</body> +</html> | 
