commit
da1e20dac1
@ -0,0 +1,119 @@
|
||||
Creative Commons Legal Code
|
||||
|
||||
CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES
|
||||
NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE
|
||||
AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION
|
||||
ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE
|
||||
OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS
|
||||
LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION
|
||||
OR WORKS PROVIDED HEREUNDER.
|
||||
|
||||
Statement of Purpose
|
||||
|
||||
The laws of most jurisdictions throughout the world automatically confer exclusive
|
||||
Copyright and Related Rights (defined below) upon the creator and subsequent
|
||||
owner(s) (each and all, an "owner") of an original work of authorship and/or
|
||||
a database (each, a "Work").
|
||||
|
||||
Certain owners wish to permanently relinquish those rights to a Work for the
|
||||
purpose of contributing to a commons of creative, cultural and scientific
|
||||
works ("Commons") that the public can reliably and without fear of later claims
|
||||
of infringement build upon, modify, incorporate in other works, reuse and
|
||||
redistribute as freely as possible in any form whatsoever and for any purposes,
|
||||
including without limitation commercial purposes. These owners may contribute
|
||||
to the Commons to promote the ideal of a free culture and the further production
|
||||
of creative, cultural and scientific works, or to gain reputation or greater
|
||||
distribution for their Work in part through the use and efforts of others.
|
||||
|
||||
For these and/or other purposes and motivations, and without any expectation
|
||||
of additional consideration or compensation, the person associating CC0 with
|
||||
a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
|
||||
and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
|
||||
and publicly distribute the Work under its terms, with knowledge of his or
|
||||
her Copyright and Related Rights in the Work and the meaning and intended
|
||||
legal effect of CC0 on those rights.
|
||||
|
||||
1. Copyright and Related Rights. A Work made available under CC0 may be protected
|
||||
by copyright and related or neighboring rights ("Copyright and Related Rights").
|
||||
Copyright and Related Rights include, but are not limited to, the following:
|
||||
|
||||
i. the right to reproduce, adapt, distribute, perform, display, communicate,
|
||||
and translate a Work;
|
||||
|
||||
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||
|
||||
iii. publicity and privacy rights pertaining to a person's image or likeness
|
||||
depicted in a Work;
|
||||
|
||||
iv. rights protecting against unfair competition in regards to a Work, subject
|
||||
to the limitations in paragraph 4(a), below;
|
||||
|
||||
v. rights protecting the extraction, dissemination, use and reuse of data
|
||||
in a Work;
|
||||
|
||||
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||
European Parliament and of the Council of 11 March 1996 on the legal protection
|
||||
of databases, and under any national implementation thereof, including any
|
||||
amended or successor version of such directive); and
|
||||
|
||||
vii. other similar, equivalent or corresponding rights throughout the world
|
||||
based on applicable law or treaty, and any national implementations thereof.
|
||||
|
||||
2. Waiver. To the greatest extent permitted by, but not in contravention of,
|
||||
applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
|
||||
unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
|
||||
and Related Rights and associated claims and causes of action, whether now
|
||||
known or unknown (including existing as well as future claims and causes of
|
||||
action), in the Work (i) in all territories worldwide, (ii) for the maximum
|
||||
duration provided by applicable law or treaty (including future time extensions),
|
||||
(iii) in any current or future medium and for any number of copies, and (iv)
|
||||
for any purpose whatsoever, including without limitation commercial, advertising
|
||||
or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the
|
||||
benefit of each member of the public at large and to the detriment of Affirmer's
|
||||
heirs and successors, fully intending that such Waiver shall not be subject
|
||||
to revocation, rescission, cancellation, termination, or any other legal or
|
||||
equitable action to disrupt the quiet enjoyment of the Work by the public
|
||||
as contemplated by Affirmer's express Statement of Purpose.
|
||||
|
||||
3. Public License Fallback. Should any part of the Waiver for any reason be
|
||||
judged legally invalid or ineffective under applicable law, then the Waiver
|
||||
shall be preserved to the maximum extent permitted taking into account Affirmer's
|
||||
express Statement of Purpose. In addition, to the extent the Waiver is so
|
||||
judged Affirmer hereby grants to each affected person a royalty-free, non
|
||||
transferable, non sublicensable, non exclusive, irrevocable and unconditional
|
||||
license to exercise Affirmer's Copyright and Related Rights in the Work (i)
|
||||
in all territories worldwide, (ii) for the maximum duration provided by applicable
|
||||
law or treaty (including future time extensions), (iii) in any current or
|
||||
future medium and for any number of copies, and (iv) for any purpose whatsoever,
|
||||
including without limitation commercial, advertising or promotional purposes
|
||||
(the "License"). The License shall be deemed effective as of the date CC0
|
||||
was applied by Affirmer to the Work. Should any part of the License for any
|
||||
reason be judged legally invalid or ineffective under applicable law, such
|
||||
partial invalidity or ineffectiveness shall not invalidate the remainder of
|
||||
the License, and in such case Affirmer hereby affirms that he or she will
|
||||
not (i) exercise any of his or her remaining Copyright and Related Rights
|
||||
in the Work or (ii) assert any associated claims and causes of action with
|
||||
respect to the Work, in either case contrary to Affirmer's express Statement
|
||||
of Purpose.
|
||||
|
||||
4. Limitations and Disclaimers.
|
||||
|
||||
a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,
|
||||
licensed or otherwise affected by this document.
|
||||
|
||||
b. Affirmer offers the Work as-is and makes no representations or warranties
|
||||
of any kind concerning the Work, express, implied, statutory or otherwise,
|
||||
including without limitation warranties of title, merchantability, fitness
|
||||
for a particular purpose, non infringement, or the absence of latent or other
|
||||
defects, accuracy, or the present or absence of errors, whether or not discoverable,
|
||||
all to the greatest extent permissible under applicable law.
|
||||
|
||||
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||
that may apply to the Work or any use thereof, including without limitation
|
||||
any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims
|
||||
responsibility for obtaining any necessary consents, permissions or other
|
||||
rights required for any use of the Work.
|
||||
|
||||
d. Affirmer understands and acknowledges that Creative Commons is not a party
|
||||
to this document and has no duty or obligation with respect to this CC0 or
|
||||
use of the Work.
|
@ -0,0 +1,19 @@
|
||||
# porninvidious
|
||||
|
||||
requires: `wget`, `lua`, `luasocket`, a posix shell
|
||||
|
||||
|
||||
# how to use
|
||||
```
|
||||
lua server.lua
|
||||
```
|
||||
go to `http://127.0.0.1:8069` (https doesn't work)
|
||||
|
||||
|
||||
|
||||
optionally pass ip and port as arguments
|
||||
```
|
||||
lua server.lua -i 0.0.0.0 -p 80
|
||||
```
|
||||
|
||||
The code of the inital commit of this repository was made by [acz](https://acz.kalli.st)
|
@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo 'Wrong usage'
|
||||
echo 'Do not run this file directly'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -e 'input.html' ] && rm 'input.html'
|
||||
[ -e 'output.html' ] && rm 'output.html'
|
||||
|
||||
HTML_START="$(cat 'res/html_start')"
|
||||
HTML_END="$(cat 'res/html_end')"
|
||||
HTML_STYLE="$(cat 'res/css.css')"
|
||||
HTML_VIDEO=''
|
||||
|
||||
wget "https://www.xvideos.com$1" -O 'input.html'
|
||||
|
||||
echo "$1" | grep '^/video'
|
||||
|
||||
if [ $? = 0 ]; then
|
||||
str="$(grep 'video_related=' 'input.html' | sed 's/,/\n/g')"
|
||||
video="$(grep 'setVideoUrlHigh' 'input.html' | cut -d"'" -f2)"
|
||||
grep 'video-hd-mark' 'input.html'
|
||||
if [ "$?" -eq 0 ]; then
|
||||
video_hls="$(grep 'setVideoHLS' 'input.html' | cut -d"'" -f2)"
|
||||
else
|
||||
video_hls=''
|
||||
fi
|
||||
video_thumb="$(grep 'setThumbUrl' 'input.html' | cut -d"'" -f2 | sed 1q)"
|
||||
thumbs="$(echo "$str" | grep '"i":' | sed 's/\\//g' | sed 's/"i"://g' | sed 's/"//g')"
|
||||
urls="$(echo "$str" | grep '"u":' | sed 's/\\//g' | sed 's/"u"://g' | sed 's/"//g')"
|
||||
HTML_VIDEO="<center><video poster='$video_thumb' controls autoplay loop><source src='$video'/></video></center><center id='infoblock'>"
|
||||
if [ ! -z "$video_hls" ]; then
|
||||
HTML_VIDEO="$HTML_VIDEO<h3>HD Stream: </h3><input type='text' size='50' value='$video_hls'/><br/>(use with a video player)"
|
||||
fi
|
||||
HTML_VIDEO="$HTML_VIDEO</center>"
|
||||
else
|
||||
urls="$(grep -E -o '<div class="thumb"><a href="(.*)">' 'input.html' | cut -d'"' -f4)"
|
||||
thumbs="$(echo "$i" | grep -E -o 'data-src="(.*)"' 'input.html' | cut -d'"' -f2)"
|
||||
fi
|
||||
|
||||
echo "$thumbs" > thumbs.txt
|
||||
echo "$urls" > urls.txt
|
||||
|
||||
echo "$HTML_START" >> output.html
|
||||
echo "$HTML_VIDEO" >> output.html
|
||||
for i in $(seq "$(wc -l urls.txt | cut -d' ' -f1)"); do
|
||||
url="$(tail "+$i" urls.txt | sed 1q)"
|
||||
title="$(echo "$url" | cut -d'/' -f5 | sed 's/_/ /g')"
|
||||
if [ -z "$title" ]; then
|
||||
title="$(echo "$url" | cut -d'/' -f3 | sed 's/_/ /g')"
|
||||
fi
|
||||
if [ "$title" = "THUMBNUM" ]; then
|
||||
title="$(echo "$url" | cut -d'/' -f4 | sed 's/_/ /g')"
|
||||
fi
|
||||
thumb="$(tail "+$i" thumbs.txt | sed 1q | sed 's/THUMBNUM/1/g')"
|
||||
echo "<div><a href='$url'><img src='$thumb'/><br/>$title</a></div>" >> output.html
|
||||
done
|
||||
echo "$HTML_STYLE" >> output.html
|
||||
echo "$HTML_END" >> output.html
|
||||
|
||||
rm 'thumbs.txt' 'urls.txt' 'input.html'
|
@ -0,0 +1,43 @@
|
||||
<style>
|
||||
h1 {
|
||||
color:white;
|
||||
margin-top:4vh;
|
||||
margin-left:4%;
|
||||
}
|
||||
h3 {
|
||||
color:white;
|
||||
display:inline;
|
||||
}
|
||||
#infoblock {
|
||||
margin-bottom:8vh;
|
||||
color:white;
|
||||
}
|
||||
a {
|
||||
color:white;
|
||||
text-decoration:none;
|
||||
}
|
||||
body {
|
||||
margin:0;
|
||||
padding:0;
|
||||
background:#111;
|
||||
}
|
||||
form {
|
||||
text-align:center;
|
||||
margin-bottom:10vh;
|
||||
}
|
||||
input {
|
||||
text-align:center;
|
||||
}
|
||||
div {
|
||||
width:33.33%;
|
||||
height:40vh;
|
||||
left:0;
|
||||
right:0;
|
||||
text-align:center;
|
||||
float:left;
|
||||
}
|
||||
video {
|
||||
margin-top:-4vh;
|
||||
margin-bottom:0.5vh;
|
||||
}
|
||||
</style>
|
After Width: | Height: | Size: 720 B |
@ -0,0 +1,2 @@
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>Porninvidious</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1><a href="/">Porninvidious</a></h1>
|
||||
<form method="get" action="/">
|
||||
<input type="text" size="30" name="k"/>
|
||||
<input type="submit" value="Search"/>
|
||||
</form>
|
@ -0,0 +1,62 @@
|
||||
local socket = require("socket")
|
||||
|
||||
local ip = '127.0.0.1'
|
||||
local port = '8069'
|
||||
|
||||
if #arg > 0 then
|
||||
local i = 1
|
||||
while i <= #arg do
|
||||
if arg[i] == "--help" then
|
||||
print("Usage: "..arg[0].." [options]\nOptions:\n-i <ip>\n-p <port>")
|
||||
os.exit(0)
|
||||
elseif arg[i] == "-i" then
|
||||
i = i + 1
|
||||
if i <= #arg then
|
||||
ip = arg[i]
|
||||
else
|
||||
print("Missing argument for -i")
|
||||
os.exit(1)
|
||||
end
|
||||
elseif arg[i] == "-p" then
|
||||
i = i + 1
|
||||
if i <= #arg then
|
||||
port = arg[i]
|
||||
else
|
||||
print("Missing argument for -p")
|
||||
os.exit(1)
|
||||
end
|
||||
else
|
||||
print("Wrong option")
|
||||
os.exit(1)
|
||||
end
|
||||
i = i + 1
|
||||
end
|
||||
end
|
||||
|
||||
local server = assert(socket.bind(ip, port))
|
||||
|
||||
print("Connected to "..ip..":"..port)
|
||||
|
||||
while 1 do
|
||||
local client = server:accept()
|
||||
local line, err = client:receive()
|
||||
if line ~= nil then
|
||||
print(line)
|
||||
local filename
|
||||
if line == "GET /favicon.ico HTTP/1.1" then
|
||||
filename = "res/favicon.png"
|
||||
else
|
||||
os.execute("./gen.sh \"$(echo \""..line.."\" | cut -d' ' -f2)\"")
|
||||
filename = "output.html"
|
||||
end
|
||||
local file = io.open(filename,"r")
|
||||
local content = file:read("*a")
|
||||
local contentType = "image/png"
|
||||
if filename == "output.html" then
|
||||
os.remove("output.html")
|
||||
contentType = "text/html"
|
||||
end
|
||||
if not err then client:send("HTTP/1.1 200 OK\nContent-type: " .. contentType .. "\n\n"..content) end
|
||||
end
|
||||
client:close()
|
||||
end
|
Loading…
Reference in new issue