view gaiac_pm_data_pulling/gaiac_pm_data_pulling.py @ 3:1f9e67edde6a draft default tip

planemo upload for repository https://github.com/jaidevjoshi83/gaiac commit e9587f93346c7b55e1be00bad5844bf2db3ed03d-dirty
author jay
date Thu, 10 Jul 2025 19:42:02 +0000
parents 69b3190e5e64
children
line wrap: on
line source

#!/usr/bin/env python


import argparse
import logging
from base64 import urlsafe_b64encode
from html import escape
from urllib.parse import urljoin
import requests
import urllib.request
import json

def get_file_list(ip):

    url = "%s/api/list-files"%(ip)

    with urllib.request.urlopen(url) as response:
        data = response.read()
        file_list = json.loads(data)

    return file_list


def simulate_dynamic_options(ip):
    try:
        rval = []

        api_data = {ip:{

        }}

        for i in get_file_list(ip):
            api_data[ip][i] = ip+'/api/download/'+i

        ul = []
        for dataset, url in api_data[ip].items():
  
            ul.append({
                'name': dataset,
                'value': url,
                'options': [],
                'selected': False
            })
        
        return ul
    except Exception as e:
        # Handle any potential errors
        return [{
            'name': escape(str(e)),
            'value': 'ERROR',
            'options': [],
            'selected': False
        }]

if __name__ == '__main__':

    print(simulate_dynamic_options('http://iotprojects.ddns.net'))