tis-google-drive
55.0.3.0-2
Drive provides encrypted and secure access to your files. Files shared with you are proactively scanned and removed when malware, spam, ransomware, ...
857 downloads
See build result See VirusTotal scan

Description
- package : tis-google-drive
- name : Google Drive
- version : 55.0.3.0-2
- architecture : all
- categories : Utilities
- maintainer : WAPT Team,Tranquil IT,Pierre Cosson
- locale : all
- target_os : windows
- installed_size : 340652032
- impacted_process : GoogleDriveFS
- editor : Google
- licence : propriatary
- signature_date : 2022-02-15T21:02:21.923911
- Homepage : https://www.google.com/drive/
control
package : tis-google-drive
version : 55.0.3.0-2
architecture : all
section : base
priority : optional
name : Google Drive
categories : Utilities
maintainer : WAPT Team,Tranquil IT,Pierre Cosson
description : Drive provides encrypted and secure access to your files. Files shared with you are proactively scanned and removed when malware, spam, ransomware, ...
depends :
conflicts :
maturity : PROD
locale : all
target_os : windows
min_wapt_version : 1.8
sources : https://dl.google.com/drive-file-stream/GoogleDriveSetup.exe
installed_size : 340652032
impacted_process : GoogleDriveFS
description_fr :
description_pl :
description_de :
description_es :
description_pt :
description_it :
description_nl :
description_ru :
audit_schedule :
editor : Google
keywords :
licence : propriatary
homepage : https://www.google.com/drive/
package_uuid : 9a568ce8-6f8b-4dc0-9c22-00640f557193
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version : 6.1
max_os_version :
icon_sha256sum : ccd4cb56a813f5a9047a2f13f051ebad7ca38b2ed78955e9bed4724b4664053b
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature : u3kigXLe0GinH39muLrKA+oXYV8MhW+a30Yaas4bBozzMuQSO+ezX+3NnHAkRFAsbKCAep1fw/EqwaeRStyyMBbbS53yLe60LUTn5MHSZ59hBIsMK8hjzHxpSdRK5jFaxgHsCBExCvjxOASfon9T+yv23iGPlvt0xQSFghDWjsXTrdKtxM98w24Pu9hEhjveXFXzbuOJVn4faDpOA7fGtC09VDNeolptMN2PYfWb4fb2I4XuQk5fBiwlhazdmzPwu3DX4osUDQvz5O+nNAZaLg3M37enZxK38bRjnNogQoeBEu80Rn2QrCOTQa5jIdoFu2NM2gLxTfyrMvNEik8c0A==
signature_date : 2022-02-15T21:02:21.923911
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
Setup.py
# -*- coding: utf-8 -*-
from setuphelpers import *
import platform
import bs4 as BeautifulSoup
import time
# 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 = 'GoogleDrive'
silent_args = '--silent --gsuite_shortcuts=false'
app_uninstallkey = '{6BBAE539-2232-434A-A4E5-9A33560C6283}'
def install():
# Declaring local variables
package_version = control.get_software_version()
bin_name = glob.glob('*%s*.exe' % bin_contains)[0]
# Installing the software
print("Installing: %s" % bin_name)
install_exe_if_needed(bin_name,
silentflags=silent_args,
key=app_uninstallkey,
min_version=package_version,
)
uninstallkey.remove(app_uninstallkey)
# Disabling Google Auto-Update
registry_setstring(HKEY_LOCAL_MACHINE,r'SOFTWARE\Policies\Google\Update','UpdateDefault',0,type=REG_DWORD)
registry_setstring(HKEY_LOCAL_MACHINE,r'SOFTWARE\Policies\Google\Update','DisableAutoUpdateChecksCheckboxValue',1,type=REG_DWORD)
registry_setstring(HKEY_LOCAL_MACHINE,r'SOFTWARE\Policies\Google\Update','AutoUpdateCheckPeriodMinutes',0,type=REG_DWORD)
def uninstall():
app_uninstallkey = '{6BBAE539-2232-434A-A4E5-9A33560C6283}'
if uninstall_key_exists(app_uninstallkey):
print("Removing Google Drive")
silent_uninstall=uninstall_cmd(app_uninstallkey)
silent_uninstall[1]='--silent'
silent_uninstall.append('--force_stop')
run(silent_uninstall)
wait_uninstallkey_absent(app_uninstallkey)
"""
def session_setup():
print("Disabling: Auto-update check")
registry_set(HKEY_CURRENT_USER, r'SOFTWARE\OpenShell\OpenShell\Settings', 'Update', 0, type=REG_DWORD)
"""
def update_package():
# Declaring local variables
result = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
app_name = control.name
bin_name_sub = bin_contains + '-%s.exe'
latest_bin = 'GoogleDriveSetup.exe'
url_dl = 'https://dl.google.com/drive-file-stream/GoogleDriveSetup.exe'
print("Download url is: %s" % url_dl)
wget(url_dl, latest_bin, proxies=proxies)
# Checking version from file
version_from_file = get_version_from_binary(latest_bin)
# Changing version of the package
if Version(version_from_file) > Version(control.get_software_version()):
print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version_from_file)))
result = True
control.version = '%s-%s' % (Version(version_from_file), control.version.split('-', 1)[-1])
#control.set_software_version(version)
control.save_control_to_wapt()
# Validating or not update-package-sources
return result
def wait_uninstallkey_absent(key=None,max_loop=120, keywords=None, name=None):
if len([f for f in [key,keywords,name] if f]) > 1:
error('Arguments conflict key: %s keywords: %s name: %s' % (key,keywords,name))
if key:
searchparam = 'key %s' % str(key)
elif name:
searchparam = 'name %s' % str(name)
else:
searchparam = 'keywords %s' % str(keywords)
print('we wait until %s disappears from the registry' % searchparam)
loop=0
while uninstall_key_exists(key):
loop = loop + 1
if loop > max_loop:
return "timout"
time.sleep(1)
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 bs_find(url, element, attribute=None, value=None, user_agent=None, proxies=None, features='html.parser', **kwargs):
r""""Parse html web page with BeautifulSoup and get the first result
Args:
url (str): url of the web page to parse
element (str): searched element
attribute (str): selected attribute of the element
value (str): value of the selected attribute
user_agent (str): specify a user-agent if needed
proxies (dict): specify your proxy if needed
**kwargs (str): joker for requests parameters
features (str): bs feature to use
>>> bs_find('https://www.w3.org/', 'a', 'title', 'Open Web Platform testing')['href']
'https://web-platform-tests.org/'
>>> bs_find('https://www.w3.org/', 'span', 'class', 'alt-logo').string
'W3C'
.. versionadded:: 2.0
"""
import requests
if user_agent:
page = requests.get(url, proxies=proxies, headers={'User-Agent':'%s' % user_agent}, **kwargs).text
else:
page = requests.get(url, proxies=proxies, **kwargs).text
soup = BeautifulSoup.BeautifulSoup(page, features=features)
if value:
return soup.find(element, {attribute: value})
else:
return soup.find(element)
def bs_find_all(url, element, attribute=None, value=None, user_agent=None, proxies=None, features='html.parser', **kwargs):
r""""Parse html web page with BeautifulSoup and get a list of the result
Args:
url (str): url of the web page to parse
element (str): searched element
attribute (str): selected attribute of the element
value (str): value of the selected attribute
user_agent (str): specify a user-agent if needed
proxies (dict): specify your proxy if needed
**kwargs (str): joker for requests parameters
features (str): bs feature to use
>>> bs_find_all('https://www.w3.org/', 'a', 'title', 'Open Web Platform testing')[0]['href']
'https://web-platform-tests.org/'
>>> bs_find_all('https://www.w3.org/', 'span', 'class', 'alt-logo')[0].string
'W3C'
.. versionadded:: 2.0
"""
import requests
if user_agent:
page = requests.get(url, proxies=proxies, headers={'User-Agent':'%s' % user_agent}, **kwargs).text
else:
page = requests.get(url, proxies=proxies, **kwargs).text
soup = BeautifulSoup.BeautifulSoup(page, features=features)
if value:
return soup.find_all(element, {attribute:value})
else:
return soup.find_all(element)
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, filename_contains=None, list_extensions=['exe','msi','deb','rpm','dmg','pkg']):
r"""Remove files based on the version contained in his filename
Args:
version (str): version number of keeped files
filename_contains (str or list of str): Part of the filename that must be contained (useful for distinguishing architecture and os)
list_extensions (str or list of str): file extensions of verified files
Returns:
None
.. versionadded:: 2.0
"""
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:
remove_file(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)
5033b17579a878c243777160d9d83cc64a558746501be026b9e1ca187a1e6c79 : setup.py
ccd4cb56a813f5a9047a2f13f051ebad7ca38b2ed78955e9bed4724b4664053b : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
4663eb5d6452612ae951b30f464ffe12360da05ffd21bd825565e64ccf8d4de3 : luti.json
1b67cb60e0f9f5ba28cc8a74d18d95164c14ff835d3cdd2107e9a81a1dcf6ab1 : GoogleDriveSetup.exe
1beaf74d455f72d39657891ea73519451f8671a1db6a2b6328495b3b396d40bc : WAPT/control