summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/pep-proxy.py31
-rwxr-xr-xbin/proxy.py13
-rw-r--r--bin/sql_build.sql17
-rw-r--r--cgi-bin/js_check/__init__.pycbin156 -> 190 bytes
-rw-r--r--cgi-bin/js_check/jsparser.pycbin27289 -> 28605 bytes
-rw-r--r--cgi-bin/js_check/validate.pycbin2770 -> 2756 bytes
-rwxr-xr-xcgi-bin/test.cgi13
-rwxr-xr-xcgi-bin/view49
-rw-r--r--js/image.js2
9 files changed, 98 insertions, 27 deletions
diff --git a/bin/pep-proxy.py b/bin/pep-proxy.py
new file mode 100755
index 0000000..b44bbbc
--- /dev/null
+++ b/bin/pep-proxy.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python3
+import http.server
+import urllib.request
+import re
+
+class MyHTTPRequestHandler(http.server.CGIHTTPRequestHandler ):
+ def end_headers(self):
+ self.send_my_headers()
+
+ http.server.CGIHTTPRequestHandler .end_headers(self)
+
+ def send_my_headers(self):
+ self.send_header("Access-Control-Allow-Origin", "*")
+
+ def do_GET(self):
+ if self.path[0:14] == "/cgi-bin/proxy":
+ self.copyfile(urllib.request.urlopen(self.path[15:]), self.wfile)
+ elif re.match(r'.+cgi-bin/im/shader/.+$', self.path):
+ self.path = re.sub(r'(.+cgi-bin/)im/shader/(.+)$', r'\1\2', self.path);
+ super().do_GET();
+ else:
+ super().do_GET()
+
+ def do_POST(self):
+ if re.match(r'.+cgi-bin/im/shader/.+$', self.path):
+ self.path = re.sub(r'(.+cgi-bin/)im/shader/(.+)$', r'\1\2', self.path);
+ super().do_POST();
+
+if __name__ == '__main__':
+ http.server.test(HandlerClass=MyHTTPRequestHandler)
+
diff --git a/bin/proxy.py b/bin/proxy.py
index 6171dab..b44bbbc 100755
--- a/bin/proxy.py
+++ b/bin/proxy.py
@@ -1,12 +1,13 @@
#!/usr/bin/env python3
import http.server
import urllib.request
+import re
-class MyHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
+class MyHTTPRequestHandler(http.server.CGIHTTPRequestHandler ):
def end_headers(self):
self.send_my_headers()
- http.server.SimpleHTTPRequestHandler.end_headers(self)
+ http.server.CGIHTTPRequestHandler .end_headers(self)
def send_my_headers(self):
self.send_header("Access-Control-Allow-Origin", "*")
@@ -14,9 +15,17 @@ class MyHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
if self.path[0:14] == "/cgi-bin/proxy":
self.copyfile(urllib.request.urlopen(self.path[15:]), self.wfile)
+ elif re.match(r'.+cgi-bin/im/shader/.+$', self.path):
+ self.path = re.sub(r'(.+cgi-bin/)im/shader/(.+)$', r'\1\2', self.path);
+ super().do_GET();
else:
super().do_GET()
+ def do_POST(self):
+ if re.match(r'.+cgi-bin/im/shader/.+$', self.path):
+ self.path = re.sub(r'(.+cgi-bin/)im/shader/(.+)$', r'\1\2', self.path);
+ super().do_POST();
+
if __name__ == '__main__':
http.server.test(HandlerClass=MyHTTPRequestHandler)
diff --git a/bin/sql_build.sql b/bin/sql_build.sql
new file mode 100644
index 0000000..8badd66
--- /dev/null
+++ b/bin/sql_build.sql
@@ -0,0 +1,17 @@
+create database IF NOT EXISTS asdfus;
+grant all privileges on asdfus.* to 'asdfus'@'localhost' identified by 'gTYgT&M6q';
+flush privileges;
+use asdfus;
+create table IF NOT EXISTS shaders (id int(11) AUTO_INCREMENT NOT NULL, PRIMARY KEY(id), script blob, image_url blob, thumbnail_url varchar(50), username varchar(30), time bigint(20) NOT NULL, shader_id int(11));
+
+create table IF NOT EXISTS shader_ids (id int(11) AUTO_INCREMENT NOT NULL, PRIMARY KEY(id), username varchar(40));
+alter table shaders modify username varchar(30);
+
+IF EXISTS (
+ SELECT *
+ FROM sys.columns
+ WHERE name = 'shaders'
+)
+begin
+ alter table shaders add name varchar(40);
+end;
diff --git a/cgi-bin/js_check/__init__.pyc b/cgi-bin/js_check/__init__.pyc
index 5d23962..e3d1cac 100644
--- a/cgi-bin/js_check/__init__.pyc
+++ b/cgi-bin/js_check/__init__.pyc
Binary files differ
diff --git a/cgi-bin/js_check/jsparser.pyc b/cgi-bin/js_check/jsparser.pyc
index 42b15b8..5ce5c81 100644
--- a/cgi-bin/js_check/jsparser.pyc
+++ b/cgi-bin/js_check/jsparser.pyc
Binary files differ
diff --git a/cgi-bin/js_check/validate.pyc b/cgi-bin/js_check/validate.pyc
index 0905b8f..a3c7071 100644
--- a/cgi-bin/js_check/validate.pyc
+++ b/cgi-bin/js_check/validate.pyc
Binary files differ
diff --git a/cgi-bin/test.cgi b/cgi-bin/test.cgi
new file mode 100755
index 0000000..e33ee3e
--- /dev/null
+++ b/cgi-bin/test.cgi
@@ -0,0 +1,13 @@
+#!/usr/bin/perl
+ print "Content-type: text/html\n\n";
+ print <<HTML;
+ <html>
+<head>
+ <title>A Simple Perl CGI</title>
+ </head>
+ <body>
+ <h1>A Simple Perl CGI</h1>
+ <p>Hello World</p>
+ </body>
+HTML
+ exit;
diff --git a/cgi-bin/view b/cgi-bin/view
index d818519..6bb55b4 100755
--- a/cgi-bin/view
+++ b/cgi-bin/view
@@ -72,40 +72,41 @@ sub main{
}
my $res;
- given($params->{f}){
- when(/info/){
+ for($params->{f}){
+ /info/ && do {
unless(defined $params->{id}) { not_specified_error("id"); };
$res = mysql_retrieve('SELECT * FROM shaders WHERE id = ?', $params->{id});
- }
- when(/all/){
+ last;
+ };
+ /all/ && do {
$res = mysql_retrieve('select * from shaders order by id');
- }
- when(/range/){
+ last;
+ };
+ /range/ && do {
unless (defined $params->{limit}){ not_specified_error("limit") };
- if (defined $params->{last}){
- $res = mysql_retrieve(sprintf(' select * from shaders order by id desc limit %s , %s', $param->{last}, $params->{limit}));
- }else{
- $res = mysql_retrieve(sprintf(' select * from shaders order by id desc limit 0 , %s', $params->{limit}));
- }
- }
- when(/history/){
+ $res = mysql_retrieve(' select * from shaders order by id desc limit ? , ?', ($params->{last} || 0), $params->{limit});
+ last;
+ };
+ /history/ && do{
unless(defined $params->{id}) { not_specified_error("id"); };
$res = mysql_retrieve('SELECT * FROM shaders WHERE shader_id = ? order by id', $params->{id});
- }
- when(/username/){
+ last;
+ };
+ /username/ && do{
unless(defined $params->{username}) { not_specified_error("username") };
$res = mysql_retrieve('select * from shaders where username = ?', $params->{username});
- }
- when(/list_users/){
+ last;
+ };
+ /list_users/ && do{
$res = mysql_retrieve('select distinct username from shaders;');
- }
- when(/originals/){
+ last;
+ };
+ /originals/ && do{
$res = mysql_retrieve('select shaders.* from shader_ids cross join shaders on shader_ids.id = shaders.shader_id');
- }
- default {
- response({ ERROR => "Function parameter f improperly defined"}, $callback);
- exit(1);
- };
+ last;
+ };
+ response({ ERROR => "Function parameter f improperly defined"}, $callback);
+ exit(1);
}
response($res, $callback);
}
diff --git a/js/image.js b/js/image.js
index 9ac1290..ef58f4b 100644
--- a/js/image.js
+++ b/js/image.js
@@ -69,7 +69,7 @@ function uploadImage(opt){
form.append("qqfile", opt.blob);
var req = new XMLHttpRequest();
- req.open("POST", "/cgi-bin/im/upload");
+ req.open("POST", "/cgi-bin/im/shader/upload");
req.onload = function(event) {
if (req.status == 200) {
var res = JSON.parse(req.responseText);