mirror of
https://github.com/Balshgit/different
synced 2025-09-11 02:50:41 +03:00
update dockerhub and goodgame scripts
This commit is contained in:
parent
4f995d530b
commit
66e8f9e757
88
dockerhub.py
88
dockerhub.py
@ -13,42 +13,42 @@ from termcolor import colored
|
|||||||
SERVICES: dict[str: dict[str, Any]] = {
|
SERVICES: dict[str: dict[str, Any]] = {
|
||||||
'general': {
|
'general': {
|
||||||
'components': [
|
'components': [
|
||||||
{'name': 'caddy', 'version': '2.7.5'},
|
{'name': 'caddy', 'version': '2.7.6'},
|
||||||
{'name': 'python', 'version': '3.11.5'},
|
{'name': 'python', 'version': '3.12.1'},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
'nextcloud': {
|
'nextcloud': {
|
||||||
'components': [
|
'components': [
|
||||||
{'name': 'nextcloud', 'version': '27.1.2'},
|
{'name': 'nextcloud', 'version': '28.0.1'},
|
||||||
{'name': 'mysql', 'version': '8.1.0'},
|
{'name': 'mysql', 'version': '8.2.0'},
|
||||||
{'name': 'redis', 'version': '7.2.1'},
|
{'name': 'redis', 'version': '7.2.3'},
|
||||||
{'name': 'nginx', 'version': '1.25.2'},
|
{'name': 'nginx', 'version': '1.25.3'},
|
||||||
{'name': 'onlyoffice/documentserver', 'version': '7.3.3.50'},
|
{'name': 'onlyoffice/documentserver', 'version': '7.5.1.1'},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'gitea': {
|
'gitea': {
|
||||||
'components': [
|
'components': [
|
||||||
{'name': 'gitea/gitea', 'version': '1.20.5'},
|
{'name': 'gitea/gitea', 'version': '1.21.3'},
|
||||||
{'name': 'postgres', 'version': '15.4'},
|
{'name': 'postgres', 'version': '16.1'},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'mediawiki': {
|
'mediawiki': {
|
||||||
'components': [
|
'components': [
|
||||||
{'name': 'mediawiki', 'version': '1.40.1'},
|
{'name': 'mediawiki', 'version': '1.41.0'},
|
||||||
{'name': 'mariadb', 'version': '11.1.2'},
|
{'name': 'mariadb', 'version': '11.2.2'},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'bitwarden': {
|
'bitwarden': {
|
||||||
'components': [
|
'components': [
|
||||||
{'name': 'bitwarden/web', 'version': '2023.9.1'},
|
{'name': 'bitwarden/web', 'version': '2023.12.0'},
|
||||||
{'name': 'bitwarden/server', 'version': '2023.9.0'},
|
{'name': 'bitwarden/server', 'version': '2023.12.0'},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'mosgortrans': {
|
'mosgortrans': {
|
||||||
'deprecated': True,
|
'deprecated': False,
|
||||||
'components': [
|
'components': [
|
||||||
{'name': 'selenoid/chrome', 'version': '111.0'},
|
{'name': 'selenoid/chrome', 'version': '119.0'},
|
||||||
{'name': 'aerokube/selenoid', 'version': '1.10.10'},
|
{'name': 'aerokube/selenoid', 'version': '1.11.0'},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -140,11 +140,12 @@ class DockerHubScanner:
|
|||||||
# Do not show older versions than current in tags
|
# Do not show older versions than current in tags
|
||||||
try:
|
try:
|
||||||
tags = tags[:tags.index(component_version) + 1]
|
tags = tags[:tags.index(component_version) + 1]
|
||||||
|
if len(tags) > 5:
|
||||||
|
tags = tags[:5]
|
||||||
except ValueError:
|
except ValueError:
|
||||||
tags = tags[:3]
|
tags = tags[:3]
|
||||||
logger.error(
|
logger.error(
|
||||||
f"cant find tag {component_version} for service {service_name}"
|
f"Cant find tag {component_version} for service {service_name} for component {component_name}"
|
||||||
f"for component {component_name}"
|
|
||||||
)
|
)
|
||||||
return {component_name: tags}
|
return {component_name: tags}
|
||||||
|
|
||||||
@ -155,24 +156,23 @@ class DockerHubScanner:
|
|||||||
|
|
||||||
return services_tags
|
return services_tags
|
||||||
|
|
||||||
def print_data(self, service_name: str, service_component: dict[str, str], lock: Lock) -> None:
|
def print_data(self, service_name: str, service_component: dict[str, str]) -> None:
|
||||||
|
|
||||||
component_name = service_component['name']
|
component_name = service_component['name']
|
||||||
component_version = service_component['version']
|
component_version = service_component['version']
|
||||||
|
|
||||||
data = self.get_data(service_name, service_component)
|
data = self.get_data(service_name, service_component)
|
||||||
|
|
||||||
with lock:
|
print(
|
||||||
print(
|
f"Service: {colored(service_name, color='light_grey')}",
|
||||||
f"Service: {colored(service_name, color='light_grey')}",
|
f"\nComponent: {colored(component_name, color='light_blue')}",
|
||||||
f"\nComponent: {colored(component_name, color='light_blue')}",
|
f"\nLatest tags: {colored(str(data[component_name]), color='magenta')}",
|
||||||
f"\nLatest tags: {colored(str(data[component_name]), color='magenta')}",
|
f"\nCurrent version: {colored(component_version, color='cyan')}",
|
||||||
f"\nCurrent version: {colored(component_version, color='cyan')}",
|
)
|
||||||
)
|
|
||||||
|
|
||||||
if data[component_name][0] > component_version:
|
if data[component_name][0] > component_version:
|
||||||
print(f"New version of {component_name}: {colored(data[component_name][0], color='yellow')}")
|
print(f"New version of {component_name}: {colored(data[component_name][0], color='yellow')}")
|
||||||
print()
|
print()
|
||||||
|
|
||||||
async def _async_request(self, client: AsyncClient, url: str) -> dict[str, Any] | None:
|
async def _async_request(self, client: AsyncClient, url: str) -> dict[str, Any] | None:
|
||||||
|
|
||||||
@ -203,26 +203,28 @@ class DockerHubScanner:
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
print()
|
||||||
print(colored('Services'.center(50, '-', ), color='white'), '\n')
|
print(colored('Services'.center(50, '-', ), color='white'), '\n')
|
||||||
|
|
||||||
global_lock = Lock()
|
lock = Lock()
|
||||||
|
|
||||||
dockerhub_scanner = DockerHubScanner()
|
dockerhub_scanner = DockerHubScanner()
|
||||||
processes = []
|
processes = []
|
||||||
|
|
||||||
for service, service_details in SERVICES.items():
|
with lock:
|
||||||
for component in service_details['components']:
|
for service, service_details in SERVICES.items():
|
||||||
if service_details.get('deprecated', False):
|
for component in service_details['components']:
|
||||||
continue
|
if service_details.get('deprecated', False):
|
||||||
process = Process(
|
continue
|
||||||
target=dockerhub_scanner.print_data,
|
process = Process(
|
||||||
kwargs={'service_name': service, 'service_component': component, 'lock': global_lock}
|
target=dockerhub_scanner.print_data,
|
||||||
)
|
kwargs={'service_name': service, 'service_component': component}
|
||||||
processes.append(process)
|
)
|
||||||
process.start()
|
processes.append(process)
|
||||||
|
process.start()
|
||||||
|
|
||||||
for process in processes:
|
for process in processes:
|
||||||
process.join()
|
process.join()
|
||||||
|
|
||||||
print(colored("All jobs done", color='white'))
|
print(colored("All jobs done", color='white'), '\n')
|
||||||
|
|
||||||
|
12
goodgame.py
12
goodgame.py
@ -1,6 +1,7 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
import timeit
|
||||||
from logging import Logger
|
from logging import Logger
|
||||||
from multiprocessing import Process
|
from multiprocessing import Process
|
||||||
from typing import Any
|
from typing import Any
|
||||||
@ -185,17 +186,6 @@ if __name__ == '__main__':
|
|||||||
good_game = GoodGame()
|
good_game = GoodGame()
|
||||||
start = time.time()
|
start = time.time()
|
||||||
good_game.async_counter()
|
good_game.async_counter()
|
||||||
# async_process = Process(
|
|
||||||
# target=good_game.async_counter, args=(), kwargs={}, name='async_process'
|
|
||||||
# )
|
|
||||||
# sync_process = Process(
|
|
||||||
# target=good_game.sync_counter, args=(), kwargs={}, name='sync_process'
|
|
||||||
# )
|
|
||||||
|
|
||||||
# sync_process.start()
|
|
||||||
# async_process.start()
|
|
||||||
# sync_process.join()
|
|
||||||
# async_process.join()
|
|
||||||
|
|
||||||
stop = time.time()
|
stop = time.time()
|
||||||
logger.info(f'End all processes. Execution time: {round(stop-start, 2)} seconds')
|
logger.info(f'End all processes. Execution time: {round(stop-start, 2)} seconds')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user