tis-obs-studio

27.2.3-26
OBS Studio (Open Broadcaster Software) est un logiciel libre et open source d'enregistrement vidéo et de streaming en direct.
12780 téléchargements
Télécharger
Voir le résultat de la construction Voir l'analyse de VirusTotal
tis-obs-studio icon
  • package : tis-obs-studio
  • name : OBS Studio
  • version : 27.2.3-26
  • categories : Media
  • maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ,Bertrand LEMOIGNE
  • editor : Hugh "Jim" Bailey
  • licence : GPLv3+
  • locale : all
  • target_os : windows
  • impacted_process : obs64,obs32,obs-ffmpeg-mux
  • architecture : x86
  • signature_date : 2022-03-08 08:00
  • size : 106.84 Mo
  • homepage : https://obsproject.com/
package           : tis-obs-studio
version           : 27.2.3-26
architecture      : x86
section           : base
priority          : optional
name              : OBS Studio
categories        : Media
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ,Bertrand LEMOIGNE
description       : OBS Studio (Open Broadcaster Software) is a free and open source software for video recording and live streaming.
depends           : 
conflicts         : 
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 1.8
sources           : https://github.com/obsproject/obs-studio/releases/latest
installed_size    : 
impacted_process  : obs64,obs32,obs-ffmpeg-mux
description_fr    : OBS Studio (Open Broadcaster Software) est un logiciel libre et open source d'enregistrement vidéo et de streaming en direct.
description_pl    : 
description_de    : 
description_es    : 
description_pt    : 
description_it    : 
description_nl    : 
description_ru    : 
audit_schedule    : 
editor            : Hugh "Jim" Bailey
keywords          : record,recorder,obs,studio,project,video,recording,live,stream,streaming
licence           : GPLv3+
homepage          : https://obsproject.com/
package_uuid      : bc3e255b-c9f0-455c-b6bc-2b07de601a67
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://github.com/obsproject/obs-studio/releases
min_os_version    : 6.2
max_os_version    : 
icon_sha256sum    : 37c0a997ee9e5811e6ffaa1c7ce580275ef6cdcb46b2a285ad124f2451742654
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature         : QtwoDsOlFeXBccYpZGjoFP5vq5lAfZBePO4hT/1vZhnUhVg8aDmPuRaPaP1FchF95yxUOTQ3UxPUxba/grIgFz3F1/7qaGX3WmBkos9HSy+hWCMN57S3sjR45OgMJGf9CLaPTYjGuzifp8tpXVGFAPAKj1dVs7IHLSJJqxSCm+oDugkrM2z6Q+XewJYYiDIPg9ixJB8mRCFTn+636R8j/MH3HGyHNQecyrjmcyFAu3mcqI1GC3+xZajCT0O76E3+2k1nppxIwVeiDY4+vCK6xZI3eIN/mD4FDZSnNhF5hTivuUBee1e0nVVrQkXNMvEFx5dq0VHCpD6q3gSuMlLs6Q==
signature_date    : 2022-03-08T08:00:28.315957
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
# -*- coding: utf-8 -*-
from setuphelpers import *
import platform
import json

# Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
bin_contains = 'OBS-Studio-'
silent_args = '/S'
app_uninstallkey = 'OBS Studio'


def install():
    # Declaring local variables
    package_version = control.get_software_version()
    bin_name = glob.glob('*%s*.exe' % bin_contains)[0]

    # Installing the package
    print("Installing: %s" % bin_name)
    install_exe_if_needed(bin_name,
        silentflags=silent_args,
        key=app_uninstallkey,
        min_version=package_version)


def update_package():
    # Declaring local variables
    result = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name
    git_repo = 'obsproject/obs-studio'
    url_api = 'https://api.github.com/repos/%s/releases/latest' % git_repo

    # Getting latest version information from official sources
    print("API used is: %s" % url_api)
    json_load = json.loads(wgets(url_api, proxies=proxies))

    for download in json_load['assets']:
        if bin_contains in download['name'] and '.exe' in download['name'] and control.architecture in download['name']:
            url_dl = download['browser_download_url']
            version = json_load['tag_name'].replace('v', '')
            latest_bin = download['name']
            break

    print("Latest %s version is: %s" % (app_name, version))
    print("Download URL is: %s" % url_dl)

    # Downloading latest binaries
    if not isfile(latest_bin):
        print("Downloading: %s" % latest_bin)
        wget(url_dl, latest_bin, proxies=proxies)

    # Changing version of the package
    if Version(version) > Version(control.get_software_version()):
        print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
        result = True
    control.version = '%s-%s' % (Version(version), control.version.split('-', 1)[-1])
    #control.set_software_version(Version(version))
    control.save_control_to_wapt()

    # Deleting outdated binaries
    remove_outdated_binaries(version, control.architecture)

    # Validating update-package-sources
    return result




def get_proxies():
    r"""Return system proxy with the urllib python library

    >>> get_proxies()
    {'http': 'http://srvproxy.ad.domain.lan:8080',
    'https': 'http://srvproxy.ad.domain.lan:8080'}

    """
    if platform.python_version_tuple()[0] == '3':
        from urllib.request import getproxies
    else:
        from urllib import getproxies
    return getproxies()


def get_proxies_from_wapt_console():
    r"""Return proxy information from the current user WAPT console

    >>> get_proxies_from_wapt_console()
    {'http': 'http://srvproxy.ad.domain.lan:8080',
    'https': 'http://srvproxy.ad.domain.lan:8080'}

    """
    proxies = {}
    if platform.system() == 'Windows':
        waptconsole_ini_path = makepath(user_local_appdata(), 'waptconsole', 'waptconsole.ini')
    else:
        waptconsole_ini_path = makepath(user_home_directory(), '.config', 'waptconsole', 'waptconsole.ini')
    if isfile(waptconsole_ini_path):
        proxy_wapt = inifile_readstring(waptconsole_ini_path, 'global', 'http_proxy')
        if proxy_wapt:
            proxies = {'http': proxy_wapt, 'https': proxy_wapt}
    return proxies


def get_version_from_binary(filename, property_name='ProductVersion'):
    r""" Get installer version from file informations, for now, only exe and msi files are compatibles

    Args:
        filename (str): path to the file
        property_name (str): selected property

    Returns:
        str: version number

     """
    if filename.endswith('.msi'):
        return get_msi_properties(filename)[property_name]
    else:
        return get_file_properties(filename)[property_name]


def remove_outdated_binaries(version, list_extensions=["exe", "msi", "deb", "rpm", "dmg", "pkg"], filename_contains=None):
    r"""Remove files based on the version contained in his filename, failing over on file version on compatible OSes

    Args:
        version (str): version number of keeped files
        list_extensions (str or list of str): file extensions of compared files
        filename_contains (str or list of str): Part of the filename that must be contained (useful for distinguishing architecture and os)

    Returns:
        list: list of deleted files

    .. versionadded:: 2.0

    .. versionchanged:: 2.2
        Now returns removed files, now checking .exe and .msi file versions

    """
    files = []
    if type(list_extensions) != list:
        list_extensions = [list_extensions]
    if filename_contains:
        if type(filename_contains) != list:
            filename_contains = [filename_contains]
    list_extensions = ["." + ext for ext in list_extensions if ext[0] != "."]
    for file_ext in list_extensions:
        for bin_in_dir in glob.glob("*%s" % file_ext):
            if not version in bin_in_dir:
                if platform.system() == "Windows":
                    if file_ext == ".exe" or file_ext == ".msi":
                        if Version(version) == Version(get_version_from_binary(bin_in_dir, "FileVersion")) or Version(version) == Version(
                            get_version_from_binary(bin_in_dir, "ProductVersion")
                        ):
                            print("%s file or product version is correct (%s)" % (bin_in_dir, version))
                            continue
                remove_file(bin_in_dir)
                files.append(bin_in_dir)
            if filename_contains:
                for filename_contain in filename_contains:
                    if not filename_contain in bin_in_dir:
                        remove_file(bin_in_dir)
                        files.append(bin_in_dir)
    return [fn for fn in files]
461d2ab4ed987b0aead15aa0a418b5bda9718a16488319f46c8e56a11beb9049 : setup.py
37c0a997ee9e5811e6ffaa1c7ce580275ef6cdcb46b2a285ad124f2451742654 : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
a7138d8a234962eae3aa3382a9deaaaad59bb0026d7e9d2459804b6419cb5999 : luti.json
e0916a8ae04edbefd8f853c240089a14ee2342717b322e166df8a23fc7913b30 : OBS-Studio-27.2.3-Full-Installer-x86.exe
b9a9462491933e4a97855217ef0f1535d5b495f1d6424d8ea3579536e5aa9498 : WAPT/control