tis-microsoft-onenote
16001.14326.21146.0-24
OneNote is a digital notebook where you can jot down and organise everything on all your devices. Jot down ideas, file notes from school and meetings, record clips from the web or create a to-do list, plus you can draw and doodle to put your ideas into pictures.
837 downloads
See build result See VirusTotal scan
Description
- package : tis-microsoft-onenote
- name : OneNote
- version : 16001.14326.21146.0-24
- categories : Office
- maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ,Pierre COSSON
- installed_size :
- editor : Microsoft Corporation
- licence : proprietary
- signature_date : 2023-01-25T11:01:02.332822
- size : 240.77 Mo
- locale : all
- target_os : windows
- impacted_process :
- architecture : all
- Depends :
control
package : tis-microsoft-onenote
version : 16001.14326.21146.0-24
architecture : all
section : base
priority : optional
name : OneNote
categories : Office
maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ,Pierre COSSON
description : OneNote is a digital notebook where you can jot down and organise everything on all your devices. Jot down ideas, file notes from school and meetings, record clips from the web or create a to-do list, plus you can draw and doodle to put your ideas into pictures.
depends : tis-microsoft-vclibs-140-00
conflicts :
maturity : PROD
locale : all
target_os : windows
min_wapt_version : 2.2
sources : https://apps.microsoft.com/store/detail/9WZDNCRFHVJL
installed_size :
impacted_process :
description_fr : OneNote est un carnet de notes numérique qui vous permet de tout noter et d'organiser sur tous vos appareils. Notez des idées, classez des notes prises à l'école ou lors de réunions, enregistrez des clips sur le Web ou créez une liste de choses à faire. Vous pouvez également dessiner et gribouiller pour mettre vos idées en images
description_pl : OneNote to cyfrowy notatnik, w którym możesz notować i organizować wszystko na wszystkich swoich urządzeniach. Możesz notować pomysły, zapisywać notatki ze szkoły i spotkań, nagrywać klipy z Internetu lub tworzyć listy rzeczy do zrobienia, a także rysować i bazgrać, aby przedstawić swoje pomysły na zdjęciach
description_de : OneNote ist ein digitales Notizbuch, in dem Sie alles auf all Ihren Geräten notieren und organisieren können. Notieren Sie Ideen, legen Sie Notizen aus der Schule und aus Meetings ab, nehmen Sie Clips aus dem Internet auf oder erstellen Sie eine Aufgabenliste, und Sie können zeichnen und kritzeln, um Ihre Ideen in Bilder umzusetzen
description_es : OneNote es un cuaderno digital donde puedes apuntar y organizar todo en todos tus dispositivos. Apunta ideas, archiva apuntes de clase y reuniones, graba clips de la web o crea una lista de tareas, además de dibujar y garabatear para plasmar tus ideas en imágenes
description_pt : OneNote é um caderno digital onde se pode anotar e organizar tudo em todos os seus dispositivos. Anote ideias, arquive notas da escola e de reuniões, grave clips da web ou crie uma lista de afazeres, além de poder desenhar e rabiscar para colocar as suas ideias em imagens
description_it : OneNote è un taccuino digitale che consente di annotare e organizzare tutto su tutti i dispositivi. È possibile annotare idee, archiviare appunti da scuola e riunioni, registrare clip dal web o creare un elenco di cose da fare, oltre a poter disegnare e scarabocchiare per trasformare le idee in immagini
description_nl : OneNote is een digitaal notitieboek waarin je alles op al je apparaten kunt noteren en organiseren. Noteer ideeën, notities van school en vergaderingen, neem clips van het web op of maak een to-do lijst, plus je kunt tekenen en krabbelen om je ideeën in beeld te brengen
description_ru : OneNote - это цифровой блокнот, в который можно записывать и организовывать все на всех ваших устройствах. Записывайте идеи, делайте заметки в школе и на собраниях, записывайте клипы из Интернета или составляйте список дел. Кроме того, вы можете рисовать и чертить, чтобы воплотить свои идеи в картинки
audit_schedule :
editor : Microsoft Corporation
keywords :
licence : proprietary
homepage :
package_uuid : ca56df54-2c6d-4116-ae14-eaae86fc3c03
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version : 10.0
max_os_version :
icon_sha256sum : ed1c2054a733b5b8dd65778fb180396e7d5a18dea9372bf9a4a71e7faba75d41
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature : Fbu2NRwqADUaSzfYn2412ROw0ssLmbTUoSe0DVhtzE2lfvLmnOZFtHnFg6V3iCzQkWt9slieBJN3PbeK29aoxArXM2dC6cAwTDjsFieixIdVz4AokbZeM+HFagoqo/wtscPCZwmz4gKJqkqkHDicjon03MW873/2Xqd0S0FgYnuyGhJeSjG+FKizj0nh2/I0+9PZYhobameYl6XaZ29GnmI/aQlIgdQbhFv4LmJrJkJ65jdI7lFUHpTlOix4r2e86+eCaqZeS0YgnNSRFfbL+/zel272dlFMHPPPxmXfggUF5xFaBseVfHLwldSHSpv5XSkfxtmU0tFmvukvpStMeA==
signature_date : 2023-01-25T11:01:02.332822
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 *
appx_package = "Microsoft.Office.OneNote"
appx_dir = makepath(programfiles, "WindowsAppsInstallers")
windows_min_os_version = WindowsVersions.Windows10v1607
allow_remove = False
def install():
# Declaring local variables
bin_name = glob.glob("%s*%s*" % (appx_package, control.get_software_version()))[0]
bin_path = makepath(appx_dir, bin_name)
# Checking minimum Windows version for this UWP application
if windows_version() >= windows_min_os_version:
if not isdir(appx_dir):
mkdirs(appx_dir)
else:
for appx_file in glob.glob(makepath(appx_dir, "%s*%s*" % (appx_package, control.get_software_version()))):
if not control.get_software_version() in appx_file:
remove_file(appx_file)
if not isfile(bin_path):
print("Copying: %s to: %s" % (bin_name, appx_dir))
filecopyto(bin_name, appx_dir)
else:
error(
"This Windows version (%s) need to be upgraded to minimum version (%s) to use this package" % (windows_version(), windows_min_os_version)
)
def session_setup():
# Declaring local variables
bin_path = glob.glob(makepath(appx_dir, "%s*%s*" % (appx_package, control.get_software_version())))[0]
# Installing the software in user env
appx_version = get_powershell_str("Get-AppxPackage -Name %s" % appx_package, "Version")
if not appx_version or appx_version < control.get_software_version() or force:
print("Installing: %s" % bin_path.split("\\")[-1])
run_powershell('Add-AppxPackage -Path "%s"' % bin_path)
else:
print("%s is installed in correct version (%s)" % (appx_package, appx_version))
def uninstall():
if allow_remove:
remove_appx(appx_package)
for appx_file in glob.glob(makepath(appx_dir, "%s*%s*" % (appx_package, control.get_software_version()))):
remove_file(appx_file)
if isdir(appx_dir) and dir_is_empty(appx_dir):
print("Removing: %s since he is empty" % (appx_dir))
remove_tree(appx_dir)
update_package.py
# -*- coding: utf-8 -*-
from setuphelpers import *
import requests
try:
from setupdevhelpers import *
except:
from bs4 import BeautifulSoup
import json
import waptguihelper
import re
def update_package():
# Declaring local variables
package_updated = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
store_url = control.sources
if not store_url:
store_id = waptguihelper.input_dialog(
"Choice of app", "Enter the windows store app id (foundable in package url: https://apps.microsoft.com/store/apps)", store_url
).split("/")[-1]
else:
store_id = store_url.split("/")[-1]
store_id = store_id.split("?")[0]
url_ms = "https://apps.microsoft.com/store/detail/%s" % store_id
control.sources = url_ms
control.save_control_to_wapt()
package_prefix = control.package.split("-")[0]
# check setup.py incase the package name doesnt match the installer file
with open("setup.py", "r") as f:
for line in f.readlines():
if line.startswith("appx_package"):
store_package_name = line.split("=")[1].split('"')[1]
break
# Getting info from adguard api
res = requests.post(
"https://store.rg-adguard.net/api/GetFiles",
"type=ProductId&url=%s&ring=RP&lang=fr-FR" % store_id,
headers={"content-type": "application/x-www-form-urlencoded"},
proxies=proxies,
)
all_files = []
page = BeautifulSoup.BeautifulSoup(res.content, features="html.parser")
for bs_search in page.find_all("a"):
if not "BlockMap" in bs_search.text and not "eappxbundle" in bs_search.text and not "emsixbundle" in bs_search.text:
version = bs_search.text.split("_")[1]
bin_name = bs_search.text.replace("~", "_")
download_url = bs_search["href"]
pkg_splitted = re.split(r"_\d+\.", bin_name)[0]
package_name = package_prefix + "-" + pkg_splitted.split("_")[0].replace(".", "-").lower()
software_name = bin_name.split("_")[0].replace("-", " ").replace(".", " ")
if "arm64" in bin_name:
package_arch = "arm64"
elif "arm" in bin_name:
package_arch = "arm"
elif "x64" in bin_name:
package_arch = "x64"
elif "x86" in bin_name:
package_arch = "x86"
else:
package_arch = "all"
file_dict = {
"version": version,
"bin_name": bin_name,
"package_name": package_name,
"software_name": software_name,
"package_arch": package_arch,
"download_url": download_url,
}
all_files.append(file_dict)
if "template-microsoft-store" in control.package:
selected = waptguihelper.grid_dialog(
"Please select the proper file",
json.dumps(all_files),
waptguihelper.GRT_SELECTED,
'{"columns":[{"propertyname":"version","datatype":"String","required":false,"readonly":false,"width":130},{"propertyname":"bin_name","datatype":"String","required":false,"readonly":false,"width":420},{"propertyname":"package_name","datatype":"String","required":false,"readonly":false,"width":190},{"propertyname":"software_name","datatype":"String","required":false,"readonly":false,"width":172},{"propertyname":"package_arch","datatype":"String","required":false,"readonly":false,"width":88},{"propertyname":"download_url","datatype":"String","required":false,"readonly":false,"width":1472}]}',
)
else:
selected = [a for a in all_files if (control.architecture in a["package_arch"] or control.architecture == "all")]
if len(selected) != 1:
higer_version = "0"
for a in all_files:
if Version(higer_version) < Version(a["version"]) and store_package_name in a["bin_name"]:
higer_version = a["version"]
selected = [a for a in selected if higer_version == a["version"] and store_package_name in a["bin_name"]]
bin_selected = selected[0]
latest_bin = bin_selected["bin_name"]
version = bin_selected["version"]
download_url = bin_selected["download_url"]
package_name = bin_selected["package_name"]
software_name = bin_selected["software_name"]
package_arch = bin_selected["package_arch"]
if download_url.split("/")[2].endswith("microsoft.com"):
if not isfile(latest_bin):
print("Downloading: %s" % latest_bin)
wget(download_url, latest_bin, proxies=proxies)
else:
print("Binary file version corresponds to online version")
else:
print("ERROR: The retrieved url will not download from microsoft's servers")
# Adding dependencies
control.depends = ""
for dependency in list(set(d["package_name"] for d in all_files)):
if dependency not in control.depends and package_name != dependency:
control.add_depends(dependency)
# Warn end-user that depencies are required
missing_depends = []
for d in control.depends.split(","):
if not WAPT.is_available(d) and d != "":
missing_depends.append(d)
if missing_depends and "template" in control.package:
waptguihelper.message_dialog(
control.package,
'The following packages are not found in your repo, you must import them or use "template-microsoft-store-dependency" to create them with the same Store ID as this package\n\n%s'
% "\n".join(a for a in missing_depends),
)
# Asking pkg infos if needed
ask_control_categories()
control.architecture = package_arch
ask_control_package(package_name, "template-microsoft-store", remove_base_files=True)
ask_control_name(software_name, "Template Microsoft Store")
ask_control_description("update_package")
# Changing setup.py appx_package variable
new_lines = []
with open("setup.py", "r") as f:
for line in f.readlines():
if line.startswith("appx_package"):
line = 'appx_package = "%s"\n' % latest_bin.split("_")[0]
new_lines.append(line)
with open("setup.py", "w") as f:
f.writelines(new_lines)
# 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)))
package_updated = True
else:
print("Software version up-to-date (%s)" % Version(version))
control.set_software_version(version)
control.save_control_to_wapt()
# Deleting outdated binaries
remove_outdated_binaries(version, ["appxbundle", "msixbundle", "appx", "msix", "part"], latest_bin)
# Validating or not update-package-sources
return package_updated
def ask_control_description(blank_str=None):
"""Requesting that the user supply package description for the control.description field
Args:
blank_str (str): The description will be cleared if it includes the specified string to avoid using the template description (default: do not clear description)
"""
if not control.description:
control.description = waptguihelper.input_dialog("Description", "Please fill the description", control.description)
control.save_control_to_wapt()
if blank_str is not None and blank_str in control.description:
control.description = ""
control.save_control_to_wapt()
return control.description
def ask_control_categories():
"""Requesting that the user supply package categories for the control.categories field if empty or Template is selected"""
if control.categories == "" or control.categories == "Template":
categories = waptguihelper.grid_dialog(
"Select package categories",
[
"Internet",
"Utilities",
"Messaging",
"Security",
"System and network",
"Media",
"Development",
"Office",
"Drivers",
"Education",
"Configuration",
"CAD",
"Template",
"Dependencies",
"Extensions",
],
waptguihelper.GRT_SELECTED,
)
if categories:
control.categories = ",".join([a["unknown"] for a in categories])
else:
control.categories = ""
control.save_control_to_wapt()
return control.categories
def ask_control_package(control_package=control.package, conditionnal_package_name=None, remove_base_files=False):
"""Requesting that the user provide a package name to be entered into the control.package field, and offering the possibility of removing the base files (icon.png and changelog.txt) for template package usage
Args:
control_package (str) : prefilled control_package (default: actual control_package)
conditionnal_package_name (str) : only ask when the control.package contains conditionnal_package_name (default: always ask for control_package)
remove_base_files (bool) : removes base files if parameter is True and conditionnal_package_name is provided (default: False)
"""
if conditionnal_package_name is None or conditionnal_package_name in control.package:
control.package = waptguihelper.input_dialog(control.package, "You can redefine the package name", control_package)
control.save_control_to_wapt()
# Removing template files
if conditionnal_package_name in control.package and remove_base_files:
if isfile("WAPT\\changelog.txt"):
remove_file("WAPT\\changelog.txt")
if isfile("WAPT\\icon.png"):
remove_file("WAPT\\icon.png")
return control.package
def ask_control_name(control_name=control.name, conditionnal_package_name=None):
"""Requesting that the user provide a package name to be entered into control.name field
Args:
control_name (str) : prefilled control_name (default: control.name)
conditionnal_package_name (str) : only ask when the control.name contains conditionnal_package_name (default: always ask for control_name)
"""
if conditionnal_package_name is None or conditionnal_package_name in control.name:
control.name = waptguihelper.input_dialog(control.name, "You can redefine the name for the self-service", control_name)
control.save_control_to_wapt()
return control.name
fa73668fa13e0abb0fc6d77667c207e871119fc491eb943a384fff6fbfd63933 : setup.py
b977f67d687cc923fa4e1ceb25432a6427a970b383e73b2b3cfdd6da8b43cd0b : update_package.py
ed1c2054a733b5b8dd65778fb180396e7d5a18dea9372bf9a4a71e7faba75d41 : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
942efa6292cfd5c2d89d967f0ab6d30141b969d86ab824136319ab1a22097cef : WAPT/changelog.txt
1cfc088b247695602b4c4d557b40dca7c4f409b2d6d1a945a4e1d8bcceb1c749 : luti.json
2553eae9d8e5a45ba907a30987788e92d64cc8ef5f097e3fb4a1d15dc0faa054 : Microsoft.Office.OneNote_16001.14326.21146.0_neutral___8wekyb3d8bbwe.appxbundle
e8b3cdddb9011c9170471678750ebbe68221d01946504aad3f8d6bc1c5646af6 : WAPT/control
Changelog
0-24
===
fix silent mode
more information shown in grid_dialog
update_package() was inccorect for some architecture
prefix was forced to tis
now using full AppxPackage Name for dependencies
better handling of remove_outdated_binaries and add_depends
improve used regex
using functions for some popups, functions return associated str
More default actions on popups
Fix update_package for 2.3 with setupdevhelpers import
Fix package name change, and depencies warning not to block luti build
Warning the end-user that dependencies are required and providing instructions on how to acquire and deploy them
0-12
===
Asking for categories
Asking for description
Adding dependencies
Changing setup.py appx_package variable
Smart update_package() it do not popup anything to download updates
Microsoft_Store_Fluent_Design_icon
remove_outdated_binaries handle extensions
Removing template files when used
allow_remove option
specify arch
min_wapt_version : 2.2
ask to change package_name
fix re.split
fix multi download on neutral apps
only ask once for description