29 lines
757 B
Python
29 lines
757 B
Python
# -*- coding: utf-8 -*-
|
|
|
|
from base64 import b64decode
|
|
|
|
from core import httptools
|
|
from core import scrapertools
|
|
from platformcode import logger
|
|
|
|
|
|
def get_long_url(short_url):
|
|
logger.debug("short_url = '%s'" % short_url)
|
|
|
|
data = httptools.downloadpage(short_url).data
|
|
ysmm = scrapertools.find_single_match(data, "var ysmm = '([^']+)';")
|
|
b64 = ""
|
|
for i in reversed(list(range(len(ysmm)))):
|
|
if i % 2:
|
|
b64 = b64 + ysmm[i]
|
|
else:
|
|
b64 = ysmm[i] + b64
|
|
|
|
decoded_uri = b64decode(b64)[2:]
|
|
|
|
if "adf.ly/redirecting" in decoded_uri:
|
|
data = httptools.downloadpage(decoded_uri).data
|
|
decoded_uri = scrapertools.find_single_match(data, "window.location = '([^']+)'")
|
|
|
|
return decoded_uri
|