Ejemplo n.º 1
0
def forwardingPort(PORT_LIST="", PORT_FORWARD='argotunnel'):
  USE_FREE_TOKEN = True 
  TOKEN = ""
  REGION = "US"
  m = []
  if not PORT_FORWARD:PORT_FORWARD='argotunnel'
  #PORT_FORWARD = "argotunnel" #@param ["ngrok", "localhost", "argotunnel"]
  if not PORT_LIST:
    with open('/content/servicesList.csv', 'r') as r:
      for line in r.readlines():
        line = line.split(',')
        if PORT_FORWARD == 'argotunnel':
          m.append([line[0], int(line[1]), line[2], line[3].strip()])
        else:
          m.append([line[0], int(line[1]), line[2].strip()])
  else:
    splitPortList = PORT_LIST.split()
    for p in splitPortList:
      p = int(p)
      m.append([f"s{p}", p, 'http'])
      
  Server = PortForward_wrapper(
      PORT_FORWARD, TOKEN, USE_FREE_TOKEN, m, REGION.lower(), 
      [f"{HOME}/.ngrok2/randomPortOpen.yml", 45535]
  )
  #print(">>>>>>>>>>>>>>>>>>>",PORT_LIST, PORT_FORWARD, m, "<<<<<<<<<<<<")
  for l in m:
    if PORT_FORWARD == 'argotunnel' and PORT_LIST==None:
      #print("><"*5, l[:3])
      Server = PortForward_wrapper(
        PORT_FORWARD, TOKEN, USE_FREE_TOKEN, [l[:3]], REGION.lower(), 
        [f"{HOME}/.ngrok2/randomPortOpen.yml", int(l[3])])
    tunnel(Server, l[0]) 
Ejemplo n.º 2
0
def cusTunnel(config=[]):
  os.makedirs('/content', exist_ok=True)
  configs = {
    'PORT_FORWARD': 'argotunnel', 
    'protocol': 'tcp',
    'name': 'colab', 
    'port': 8081, 
    'portAcc': 31188, 
    'USE_FREE_TOKEN': True, 
    'TOKEN': "",
    'REGION': "AP"  
  }
  for c in config:
    try:
      n,v = c.split()
      configs[n] = v
    except:
        pass
  print("-"*55,configs)
  server = PortForward_wrapper(
    configs['PORT_FORWARD'], 
    configs['TOKEN'], 
    eval(str(configs['USE_FREE_TOKEN'])), 
    [[configs['name'], int(configs['port']), configs['protocol']]], 
    configs['REGION'].lower(), 
    [f"{HOME}/.ngrok2/{configs['name']}.yml", int(configs['portAcc'])])
  return tunnel(server, configs['name'])
Ejemplo n.º 3
0
def socialFish(USERNAME='******', PASSWORD='******'):
    USE_FREE_TOKEN = True  # @param {type:"boolean"}
    TOKEN = ""  # @param {type:"string"}
    REGION = "US" #@param ["US", "EU", "AP", "AU", "SA", "JP", "IN"]
    PORT_FORWARD = "argotunnel" #@param ["ngrok", "localhost", "argotunnel"]
    HOME = '/content'
    
    os.makedirs(f'{HOME}/tools/', exist_ok=True)
    # Downloading SocialFish
    if not os.path.exists(f"{HOME}/tools/SocialFish/SocialFish.py"):

      print("[Installing] Wait for almost 1 minutes...")
      # runSh('apt install -y texlive-latex-extra')
      runSh('git clone https://github.com/biplobsd/SocialFish.git', cd=f'{HOME}/tools/')
      runSh('pip3 install -r requirements.txt', cd=f'{HOME}/tools/SocialFish')
      os.chmod(f"{HOME}/tools/SocialFish/SocialFish.py", 0o755)

    if not findProcess("python3", "./SocialFish.py"):
      runCmd = "./SocialFish.py " \
        f"{USERNAME} " \
        f"{PASSWORD} &"
      runSh(runCmd, shell=True, cd=f'{HOME}/tools/SocialFish/')
    # START_SERVER
    # Ngrok region 'us','eu','ap','au','sa','jp','in'
    Server = PortForward_wrapper(
        PORT_FORWARD, TOKEN, USE_FREE_TOKEN, [['SocialFish', 5000, 'http']],
        REGION.lower(), 
        [f"{HOME}/.ngrok2/SocialFish.yml", 4063]
    )
    return tunnel(Server, 'SocialFish')
Ejemplo n.º 4
0
def pyload():
  
  HOME='/content'
  USE_FREE_TOKEN = True  # @param {type:"boolean"}
  TOKEN = ""  # @param {type:"string"}
  REGION = "SA" #@param ["US", "EU", "AP", "AU", "SA", "JP", "IN"]
  PORT_FORWARD = "argotunnel" #@param ["ngrok", "localhost", "argotunnel"]
  
  os.makedirs(f'{HOME}/downloads', exist_ok=True)
  os.makedirs(f'{HOME}/tools/pyload', exist_ok=True)
  
  urlF = 'https://github.com/pyload/pyload/archive/stable.zip'
  conf = 'https://raw.githubusercontent.com/biplobsd/' \
          'OneClickRun/master/res/appdata/pyload/pyload.conf'
  db = 'https://github.com/biplobsd/OneClickRun/raw/master/' \
        'res/appdata/pyload/files.db'
  urlretrieve(urlF, f'{HOME}/tools/pyload.zip')
  urlretrieve(conf, f'{HOME}/tools/pyload/pyload.conf')
  urlretrieve(db, f'{HOME}/tools/pyload/files.db')
  with zipfile.ZipFile(f'{HOME}/tools/pyload.zip', 'r') as zip_ref:
      zip_ref.extractall(f'{HOME}/tools/pyload')
  try:
    pathlib.Path(f'{HOME}/tools/pyload.zip').unlink()
  except FileNotFoundError:
    pass

  runSh("sudo apt install -y python-pycurl python-qt4 tesseract-ocr libtesseract-dev")
  runSh("pip2 install pycrypto pyOpenSSL Jinja2 tesseract tesseract-ocr")

  if not findProcess("python2.7", "pyLoadCore.py"):
    runCmd = "python2.7 /content/tools/pyload/pyload-stable/pyLoadCore.py" \
          " --configdir=/content/tools/pyload" \
          " --no-remote" \
          " --daemon"
    runSh(runCmd, shell=True)
  # START_SERVER
  # Ngrok region 'us','eu','ap','au','sa','jp','in'
  Server = PortForward_wrapper(
    PORT_FORWARD, TOKEN, USE_FREE_TOKEN, [['rcloneConfig', 53682, 'http'], 
                            ['pyload', 8000, 'http']], REGION.lower(), 
    [f"{HOME}/.ngrok2/rclonePyload.yml", 4074]
  )
  
  return tunnel(Server, 'pyload')
Ejemplo n.º 5
0
def wetty(port=4343):
  USE_FREE_TOKEN = True  # @param {type:"boolean"}
  TOKEN = ""  # @param {type:"string"}
  REGION = "AP" #@param ["US", "EU", "AP", "AU", "SA", "JP", "IN"]
  OUTPUT_DIR = "/"  # @param {type:"string"}
  PORT_FORWARD = "ngrok"
  HOME = '/content'
  os.makedirs(f'{HOME}/tools/temp', exist_ok=True)
  wettyBF = 'https://github.com/biplobsd/temp/releases/download/v0.001/wetty.tar.gz'
  fileSN = f'{HOME}/tools/temp/wetty.tar.gz'
  urlretrieve(wettyBF, fileSN)
  with tarfile.open(fileSN, 'r:gz') as t:t.extractall(f'{HOME}/tools/')
  os.remove(fileSN)
  Popen(
      f'{HOME}/tools/wetty/wetty --port {port} --bypasshelmet -b "/" -c "/bin/bash"'.split(),
      cwd=os.getcwd())
  server = PortForward_wrapper(
    PORT_FORWARD, TOKEN, USE_FREE_TOKEN, [['wetty', '4343', 'http']], 
    REGION.lower(), 
    [f"{HOME}/.ngrok2/wetty.yml", 31199])
  return tunnel(server, 'wetty')
Ejemplo n.º 6
0
def ghfs():
    USE_FREE_TOKEN = True  # @param {type:"boolean"}
    TOKEN = ""  # @param {type:"string"}
    REGION = "AP"  #@param ["US", "EU", "AP", "AU", "SA", "JP", "IN"]
    OUTPUT_DIR = "/"  # @param {type:"string"}
    PORT_FORWARD = "ngrok"  #@param ["ngrok", "localhost", "argotunnel"]
    #HOME = f'{HOME}/content'
    toolLocation = f'{HOME}/tools/ghfs'
    binaryF = f"{toolLocation}/ghfs"

    os.makedirs(toolLocation, exist_ok=True)

    if not os.path.exists(binaryF):
        DZipBL = f"{toolLocation}/Zipghfs.zip"
        urlretrieve(
            findPackageR("mjpclab/go-http-file-server", "linux-amd64.zip"),
            DZipBL)
        with zipfile.ZipFile(DZipBL, 'r') as zip_ref:
            zip_ref.extractall(toolLocation)
        os.remove(DZipBL)
        os.chmod(binaryF, 0o777)

    if not findProcess("ghfs", "--listen-plain"):
        runSh(f'./ghfs --listen-plain 1717 -R \
             -a ":/:{OUTPUT_DIR}" \
             --global-upload \
             --global-mkdir \
             --global-delete \
             --global-archive \
             --global-archive \
              &',
              shell=True,
              cd=f"{HOME}/tools/ghfs")

    # START_SERVER
    # Ngrok region 'us','eu','ap','au','sa','jp','in'
    server = PortForward_wrapper(PORT_FORWARD, TOKEN, USE_FREE_TOKEN,
                                 [['ghfs', 1717, 'http']], REGION.lower(),
                                 [f"{HOME}/.ngrok2/ghfs.yml", 4171])
    return tunnel(server, 'ghfs')
Ejemplo n.º 7
0
def jellyfin(CUSTOM_VERSION=None):
  HOME = '/content'
  os.makedirs(f'{HOME}/tools/jellyfin/temp', exist_ok=True)
  os.makedirs(f'{HOME}/tools/jellyfin/transcodes', exist_ok=True)
  os.makedirs(f'{HOME}/downloads', exist_ok=True)

  # JellyfinMain
  if CUSTOM_VERSION:
    serverUrl = f"https://repo.jellyfin.org/releases/server/linux/versions/stable/combined/{CUSTOM_VERSION}/"
  else:
    serverUrl = "https://repo.jellyfin.org/releases/server/linux/stable/combined/"

  server = requests.get(serverUrl).text
  server_file = re.search(r'f=\"(.+)\">jellyfin_(.+)\.tar\.gz<',
                              server, re.MULTILINE)
  server_file_url = server_file.group(1)
  versionTag = server_file.group(2)

  print(f"[Jellyfin] Installing v{versionTag} ...")
  
  outputFile = f'{HOME}/tools/jellyfin/temp/jellyfin.tar.gz'
  urlretrieve(serverUrl+server_file_url, outputFile)
  with tarfile.open(outputFile, 'r:gz') as tar_ref:
      tar_ref.extractall(f'{HOME}/tools/jellyfin')
  os.renames(f'{HOME}/tools/jellyfin/jellyfin_{versionTag}',
            f'{HOME}/tools/jellyfin/jellyfin')
  os.remove(outputFile)

  # Default config data
  defaultConfig = "https://raw.githubusercontent.com/biplobsd" \
  "/OneClickRun/master/res/appdata/jellyfin/data.tar.gz"
  outputFile = f'{HOME}/tools/jellyfin/temp/data.tar.gz'
  urlretrieve(defaultConfig, outputFile)
  with tarfile.open(outputFile, 'r:gz') as tar_ref:
      tar_ref.extractall(f'{HOME}/tools/jellyfin')
  os.remove(outputFile)
  
  encoConfigP = f'{HOME}/tools/jellyfin/config/encoding.xml'
  mytree = ET.parse(encoConfigP) 
  myroot = mytree.getroot() 

  def addnew(name, value):
    ET.SubElement(myroot, name).text = value

  addnew('TranscodingTempPath', f'{HOME}/tools/jellyfin/transcodes')

  mytree.write(encoConfigP) 

  # ffmpeg
  ff_loader('ffmpeg')

  # ffprobe
  ff_loader('ffprobe')
  
  ffmpegPath = '/usr/bin/ffmpeg'
  
  # Starting jellyfin
  CM = rf"{HOME}/tools/jellyfin/jellyfin/jellyfin --service " \
  f"-C {HOME}/tools/jellyfin -d {HOME}/tools/jellyfin"
  Popen(CM.split())
  
  # START_SERVER
  Server = PortForward_wrapper(
    "argotunnel","",True, [['jellyfin', 8096, 'http']],"us", [f"{HOME}/.ngrok2/jellyfin.yml", 7097]
  )
  
  return tunnel(Server, 'jellyfin')
Ejemplo n.º 8
0
"""
    with open(f'{HOME}/.vnc/xstartup', 'w+') as wNow:
        wNow.write(data)
    os.chmod(f'{HOME}/.vnc/xstartup', 0o755)
    os.chmod(f'{HOME}/.vnc/passwd', 0o400)
    runSh('sudo vncserver &', shell=True)
    runSh(f'git clone https://github.com/novnc/noVNC.git {CWD}/noVNC')
    runSh("bash noVNC/utils/launch.sh --listen 6080 --vnc localhost:5901 &",
          shell=True)
    #end = time.time()
# START_SERVER
# Ngrok region 'us','eu','ap','au','sa','jp','in'
clear_output()
PORT_FORWARD = "ngrok"  #@param ["ngrok", "localhost"]
Server = PortForward_wrapper(PORT_FORWARD, TOKEN, USE_FREE_TOKEN,
                             [['ssh', 22, 'tcp'], ['vnc', 6080, 'http']], 'in',
                             [f"{HOME}/.ngrok2/sshVnc.yml", 4455])
data = Server.start('ssh', displayB=False)

# output
Host, port = data['url'][7:].split(':')
data2 = Server.start('vnc', displayB=False)
clear_output()
if CREATE_VNC:
    displayUrl(data2,
               pNamU='noVnc : ',
               EcUrl=f'/vnc.html?autoconnect=true&password={password}')
if CREATE_SSH:
    display(
        HTML(
            """<style>@import url('https://fonts.googleapis.com/css?family=Source+Code+Pro:200,900');  :root {   --text-color: hsla(210, 50%, 85%, 1);   --shadow-color: hsla(210, 40%, 52%, .4);   --btn-color: hsl(210, 80%, 42%);   --bg-color: #141218; }  * {   box-sizing: border-box; } button { position:relative; padding: 10px 20px;     border: none;   background: none;      font-family: "Source Code Pro";   font-weight: 900;font-size: 100%;     color: var(--text-color);      background-color: var(--btn-color);   box-shadow: var(--shadow-color) 2px 2px 22px;   border-radius: 4px;    z-index: 0;overflow: hidden; -webkit-user-select: text;-moz-user-select: text;-ms-user-select: text;user-select: text;}  button:focus {   outline-color: transparent;   box-shadow: var(--btn-color) 2px 2px 22px; }  .right::after, button::after {   content: var(--content);   display: block;   position: absolute;   white-space: nowrap;   padding: 40px 40px;   pointer-events:none; }  button::after{   font-weight: 200;   top: -30px;   left: -20px; }   .right, .left {   position: absolute;   width: 100%;   height: 100%;   top: 0; } .right {   left: 66%; } .left {   right: 66%; } .right::after {   top: -30px;   left: calc(-66% - 20px);      background-color: var(--bg-color);   color:transparent;   transition: transform .4s ease-out;   transform: translate(0, -90%) rotate(0deg) }  button:hover .right::after {   transform: translate(0, -47%) rotate(0deg) }  button .right:hover::after {   transform: translate(0, -50%) rotate(-7deg) }  button .left:hover ~ .right::after {   transform: translate(0, -50%) rotate(7deg) }  /* bubbles */ button::before {   content: '';   pointer-events: none;   opacity: .6;   background:     radial-gradient(circle at 20% 35%,  transparent 0,  transparent 2px, var(--text-color) 3px, var(--text-color) 4px, transparent 4px),     radial-gradient(circle at 75% 44%, transparent 0,  transparent 2px, var(--text-color) 3px, var(--text-color) 4px, transparent 4px),     radial-gradient(circle at 46% 52%, transparent 0, transparent 4px, var(--text-color) 5px, var(--text-color) 6px, transparent 6px);    width: 100%;   height: 300%;   top: 0;   left: 0;   position: absolute;   animation: bubbles 5s linear infinite both; }  @keyframes bubbles {   from {     transform: translate();   }   to {     transform: translate(0, -66.666%);   } }.zui-table {    border: solid 1px #DDEEEE;    border-collapse: collapse;    border-spacing: 0;    font: normal 13px;}.zui-table thead th {    background-color: #DDEFEF;    border: solid 1px #DDEEEE;    color: #0000009e;    padding: 10px;    text-align: left;}.zui-table tbody td {border: solid 1px #effff97a;color: #ffffffd1;    padding: 10px;}</style><center><button><table class="zui-table blueBG"><p>Ssh config<p><thead>        <tr>        <th>Host</th>            <th>Port</th>        <th>Password</th> </tr>    </thead>    <tbody>        <tr><td>"""