tis-tautulli-portable icon

tautulli

Silent install package for tautulli

2.15.2-2

  • package: tis-tautulli-portable
  • name: tautulli
  • version: 2.15.2-2
  • maintainer: Amel FRADJ
  • licence: GPL-3.0 license
  • target_os: windows
  • impacted_process: Tautulli
  • architecture: x64
  • signature_date:
  • size: 35.90 Mo
  • homepage : tautulli.com
  • depends:

package           : tis-tautulli-portable
version           : 2.15.2-2
architecture      : x64
section           : base
priority          : optional
name              : tautulli
categories        : 
maintainer        : Amel FRADJ
description       : About A Python based monitoring and tracking tool for Plex Media Server
depends           : tis-7zip
conflicts         : 
maturity          : PROD
locale            : 
target_os         : windows
min_wapt_version  : 2.3
sources           : 
installed_size    : 
impacted_process  : Tautulli
description_fr    : A propos d'un outil de surveillance et de suivi basé sur Python pour Plex Media Server
description_pl    : Informacje o opartym na języku Python narzędziu do monitorowania i śledzenia dla Plex Media Server
description_de    : Über ein Python-basiertes Überwachungs- und Tracking-Tool für Plex Media Server
description_es    : Acerca de Una herramienta de monitorización y seguimiento basada en Python para Plex Media Server
description_pt    : Sobre uma ferramenta de monitorização e rastreio baseada em Python para o Plex Media Server
description_it    : Informazioni su Uno strumento di monitoraggio e tracciamento basato su Python per Plex Media Server
description_nl    : Over een op Python gebaseerd controle- en volgprogramma voor Plex Media Server
description_ru    : Об инструменте мониторинга и отслеживания Plex Media Server на основе Python
audit_schedule    : 
editor            : 
keywords          : 
licence           : GPL-3.0 license
homepage          : tautulli.com
package_uuid      : 42149187-a7cd-490a-aea1-6114ed6c9338
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : f3aec76eb507b7494a9a6dbe6f9bb05c70025904d09632848de954d312049579
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2025-07-09T09:01:47.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : AtX/EkuO4S+uvjrwA+k27UoNN57uWPJ52cqcMB4NeDHCUMoVJtRXBwHsYqmcqOQmdr9FF14bk4W5fFz93eQX5Efuct65PX2qjKmOL310oR3Z1NkpBhef85f6FifGec99YP7u3PqvqEIKWL/ejLU2lHNgt4kY2CBTslb2WjhQKa2CI/aLD/jbDNuy94uQYjY4BHdOQpa55VLtINsT7UseNb1mSZbQXI3pQTxW8jXdJBGjYzsfP1WQhOzYF2P8+aCOBVmsqypIvib4orAwUvwC8f+VhkonoDsK06z8fNaWomTbrQMoAwxKkuTfsUe2uTPxpxYmByoKPMURq8oLHcdq0w==

# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *

app_name = "Tautulli"
app_dir = makepath(programfiles, app_name)
app_exe = makepath(app_dir, f'{app_name}.exe')

def install():
    bin_name = glob.glob('Tautulli-windows*x64.exe')[0]
    app_path = makepath(app_dir, bin_name)

    killalltasks(ensure_list(control.impacted_process))

    if isdir(app_dir) and force:
        remove_tree(app_dir)

    mkdirs(app_dir)
    filecopyto(bin_name, app_path)
    unzip_with_7zip(app_path, app_dir)

    # Delete useless folder
    remove_tree(makepath(app_dir, '$PLUGINSDIR'))
    remove_file(app_path)

    # Creating shortcuts
    create_desktop_shortcut(app_name, target=app_exe)
    create_programs_menu_shortcut(app_name, target=app_exe)


def uninstall():
    # Uninstalling software
    killalltasks(ensure_list(control.impacted_process))

    for uninstall in installed_softwares(app_name):
        uninstall_key = uninstall['key']
        run(uninstall_cmd(uninstall_key))
        wait_uninstallkey_absent(uninstall_key)

    if isdir(app_dir):
        remove_tree(app_dir)

    # Removing shortcuts
    remove_desktop_shortcut(app_exe)
    remove_programs_menu_shortcut(app_exe)

# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name
   
    url = "https://api.github.com/repos/Tautulli/Tautulli/releases"
    releases = wgets(url, proxies=proxies, as_json=True)

    latest_release = max(
        (
            release for release in releases
            if not release['prerelease'] and
            any(asset['name'].endswith('.exe') for asset in release['assets'])
        ),
        key=lambda r: Version(r['tag_name'].lstrip('v'))
    )

    for asset in latest_release["assets"]:
        if asset["name"].endswith(".exe") :
            download_url = asset["browser_download_url"]
            version = latest_release["tag_name"].lstrip('v')
            latest_bin = asset["name"]
            latest_bin_extension = latest_bin.rsplit('.', 1)[-1]
            break

    # Downloading latest binaries
    print(f"Latest {app_name} version is: {version}")
    print(f"Download URL is: {download_url}")
    if not isfile(latest_bin):
        print(f"Downloading: {latest_bin}")
        wget(download_url, latest_bin, proxies=proxies)
    else:
        print(f"Binary is present: {latest_bin}")

    # Changing version of the package
    if Version(version) > Version(control.get_software_version()):
        print(f"Software version updated (from: {control.get_software_version()} to: {Version(version)})")
        package_updated = True
    else:
        print(f"Software version up-to-date ({Version(version)})")

    for f in glob.glob(f'*.{latest_bin_extension}'):
        if f != latest_bin:
            remove_file(f)

    control.set_software_version(version)
    control.save_control_to_wapt()

    return package_updated

072aaf86f864d5183495d9215c24da8cd02651fc1511c0ba7e9a5fed159372a3 : Tautulli-windows-v2.15.2-x64.exe
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
7a5d164ba91749ae3ec1f36ee3de782e9e208e17b7a42a57ce13ff47d95e08e3 : WAPT/control
f3aec76eb507b7494a9a6dbe6f9bb05c70025904d09632848de954d312049579 : WAPT/icon.png
5ece71c6d216e45749d8cf506a79f8aa07c21e5b9a47c68f4fea62ffadca096a : luti.json
2f82ff99b6b17e33c94c79b6491312fbf69438a0dd8f34ee4219a85d44a36559 : setup.py
7793e51e3176ea850737447c19b7f467af655de083a2225646dd540e15b26a4a : update_package.py