mirror of
https://github.com/rangermix/TwitchDropsMiner.git
synced 2026-06-07 21:04:35 +00:00
Change minimum Python version to 3.10
This commit is contained in:
@@ -33,6 +33,7 @@ Every several seconds, the application pretends to watch a particular stream by
|
||||
|
||||
### Notes:
|
||||
|
||||
- Requires Python 3.10 or higher.
|
||||
- Make sure to keep your cookies file safe, as the authorization information it stores can give another person access to your Twitch account.
|
||||
- Successfully logging into your Twitch account in the application, may cause Twitch to send you a "New Login" notification email. This is normal - you can verify that it comes from your own IP address. The application uses the Twitch's SmartTV account linking process, so the detected browser during the login should signify that as well.
|
||||
- The time remaining timer always countdowns a single minute and then stops - it is then restarted only after the application redetermines the remaining time. This "redetermination" can happen as early as at 10 seconds in a minute remaining, and as late as 20 seconds after the timer reaches zero (especially when finishing mining a drop), but is generally only an approximation and does not represent nor affect actual mining speed. The time variations are due to Twitch sometimes not reporting drop progress at all, or reporting progress for the wrong drop - these cases have all been accounted for in the application though.
|
||||
|
||||
1
cache.py
1
cache.py
@@ -1,4 +1,5 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
from datetime import datetime, timedelta, timezone
|
||||
|
||||
|
||||
2
gui.py
2
gui.py
@@ -1043,7 +1043,7 @@ class TrayIcon:
|
||||
|
||||
def __init__(self, manager: GUIManager, master: ttk.Widget):
|
||||
self._manager = manager
|
||||
self.icon: pystray.Icon | None = None
|
||||
self.icon: pystray.Icon | None = None # type: ignore
|
||||
self._icon_images: dict[str, Image_module.Image] = {
|
||||
"pickaxe": Image_module.open(resource_path("icons/pickaxe.ico")),
|
||||
"active": Image_module.open(resource_path("icons/active.ico")),
|
||||
|
||||
12
utils.py
12
utils.py
@@ -19,9 +19,7 @@ from contextlib import suppress
|
||||
from functools import cached_property
|
||||
from datetime import datetime, timezone
|
||||
from collections import abc, OrderedDict
|
||||
from typing import (
|
||||
Any, Literal, MutableSet, Callable, Generic, Mapping, TypeVar, cast, TYPE_CHECKING
|
||||
)
|
||||
from typing import Any, Literal, MutableSet, Callable, Generic, Mapping, TypeVar, ParamSpec, cast
|
||||
|
||||
import yarl
|
||||
from PIL.ImageTk import PhotoImage
|
||||
@@ -31,14 +29,6 @@ from constants import JsonType, IS_PACKAGED
|
||||
from exceptions import ExitRequest, ReloadRequest
|
||||
from constants import _resource_path as resource_path # noqa
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing_extensions import ParamSpec
|
||||
else:
|
||||
# stub it
|
||||
class ParamSpec:
|
||||
def __init__(*args, **kwargs):
|
||||
pass
|
||||
|
||||
|
||||
_T = TypeVar("_T") # type
|
||||
_D = TypeVar("_D") # default
|
||||
|
||||
Reference in New Issue
Block a user