Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions edsy.js
Original file line number Diff line number Diff line change
Expand Up @@ -5737,9 +5737,9 @@ if (true && current.dev) console.log(json.Ship+' '+modulejson.Item+' leftover '+
button.append(
createTranslatedElement('span', 'ui-button-generate'),
' ',
'(v.gd)'
'(zip1.io)'
);
button.name = 'export_short_gen_button_v.gd';
button.name = 'export_short_gen_button_zip1.io';
button.className = 'text';
button.addEventListener('click', onUIPopupExportShortButtonClick);
div.appendChild(button);
Expand All @@ -5753,6 +5753,16 @@ if (true && current.dev) console.log(json.Ship+' '+modulejson.Item+' leftover '+
button.className = 'text';
button.addEventListener('click', onUIPopupExportShortButtonClick);
div.append(' ', button);
var button = document.createElement('button');
button.append(
createTranslatedElement('span', 'ui-button-generate'),
' ',
'(v.gd)'
);
button.name = 'export_short_gen_button_v.gd';
button.className = 'text';
button.addEventListener('click', onUIPopupExportShortButtonClick);
div.append(' ', button);
var input = document.createElement('input');
input.style.display = 'none';
input.type = 'text';
Expand Down
26 changes: 24 additions & 2 deletions longlink
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,29 @@ try:
inForm = cgi.FieldStorage()
slug = inForm.getfirst('slug') if ('slug' in inForm) else ''
#if path/form
if slug.startswith('v'): # v.gd
if slug.startswith('z'): # zip1.io
req = requests.get('https://zip1.io/' + slug[1:], timeout=10, allow_redirects=False)
if req.status_code == 502: # 502 Bad Gateway means rate limited
sleep(5)
req = requests.get('https://zip1.io/' + slug[1:], timeout=10, allow_redirects=False)
#if 502
if req.status_code in (301,302,303,307,308):
url = req.headers.get('location','')
urltokens = url.split('/',3)
if (len(urltokens) >= 3) and (urltokens[0] in {'http:','https:'}) and (urltokens[1] == '') and (urltokens[2] in {'edsy.org','www.edsy.org'}):
outHeaders['status'] = 301
outHeaders['location'] = url
else:
outHeaders['status'] = 400
outHeaders['content-type'] = 'text/plain'
outBody.append('invalid shortlink')
#if edsy.org
else:
outHeaders['status'] = 400
outHeaders['content-type'] = 'text/plain'
outBody.append('invalid shortlink' + ((': status ' + str(req.status_code)) if DEV else ''))
#if redirect
elif slug.startswith('v'): # v.gd
reqParams = {
'format': 'simple',
'shorturl': slug[1:],
Expand Down Expand Up @@ -107,4 +129,4 @@ try:
except:
print("Status:500\r\nCache-Control: no-cache,no-store,must-revalidate,private\r\nExpires: Sat, 01 Jan 2000 00:00:00 GMT\r\nPragma: no-cache\r\nStrict-Transport-Security: max-age=300; includeSubDomains\r\nContent-type: text/html\r\n\r\n", end="")
print(cgitb.html(sys.exc_info()))
#try/except
#try/except
31 changes: 30 additions & 1 deletion shortlink
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,36 @@ try:
url = inForm.getfirst('url') if ('url' in inForm) else ''
urltokens = url.split('/',3)
if (len(urltokens) >= 3) and (urltokens[0] in {'http:','https:'}) and (urltokens[1] == '') and (urltokens[2] in {'edsy.org','www.edsy.org'}):
if service == 'v.gd':
if service == 'zip1.io':
reqParams = {
'url': url,
}
req = requests.post('https://zip1.io/api/create', json=reqParams, timeout=10)
if req.status_code == 502: # 502 Bad Gateway means rate limited
sleep(5)
req = requests.post('https://zip1.io/api/create', json=reqParams, timeout=10)
#if 502
if req.status_code == 200:
try:
resp = json.loads(req.text)
shorttokens = resp.get('short_url','').split('/',3) if isinstance(resp, dict) else []
if (len(shorttokens) >= 4) and (shorttokens[0] in {'http:','https:'}) and (shorttokens[1] == '') and (shorttokens[2] in {'zip1.io','www.zip1.io'}):
outHeaders['status'] = 200
outBody.append('https://edsy.org' + ('/dev/s/' if DEV else '/s/') + 'z' + shorttokens[3])
else:
outHeaders['status'] = 400
outBody.append('got invalid shortlink' + ((': ' + req.text) if DEV else ''))
#if zip1.io
except json.JSONDecodeError:
outHeaders['status'] = 400
outBody.append('got invalid response' + ((': ' + req.text) if DEV else ''))
#try
else:
outHeaders['status'] = req.status_code
outHeaders['content-type'] = req.headers['content-type']
outBody.append(req.text)
#if 200
elif service == 'v.gd':
reqParams = {
'format': 'simple',
'url': url,
Expand Down