PKDevTools 0.13.20250218.236__cp312-cp312-win_amd64.whl → 0.13.20250221.238__cp312-cp312-win_amd64.whl
Sign up to get free protection for your applications and to get access to all the features.
- PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/__init__.py +1 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/pubsub/publisher.py +5 -0
- PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/pubsub/subscriber.py +87 -0
- {PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.238.dist-info}/METADATA +2 -2
- PKDevTools-0.13.20250221.238.dist-info/RECORD +48 -0
- PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/__init__.py +0 -1
- PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/subscriber.py +0 -54
- PKDevTools-0.13.20250218.236.dist-info/RECORD +0 -48
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/LICENSE.txt +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/README.txt +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/__init__.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/Archiver.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/ColorText.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/Committer.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/CookieHelper.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/DBManager.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/Environment.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/Fetcher.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/FunctionTimeouts.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/GmailReader.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/MarketHours.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/MenuOptions.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/NSEMarketStatus.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/OutputControls.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/PKDateUtilities.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/PKGitFolderDownloader.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/PKJoinableQueue.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/PKMultiProcessorClient.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/PKPickler.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/PKTimer.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/Pikey.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/Singleton.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/SuppressOutput.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/System.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/Telegram.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/UserSubscriptions.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/Utils.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/WorkflowManager.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/githubutilities.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/log.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/multiprocessing_logging.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/pubsub/__init__.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/pubsub/events.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/squash.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/classes/updater.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/release.md +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.238.data}/purelib/PKDevTools/requirements.txt +0 -0
- {PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.238.dist-info}/LICENSE +0 -0
- {PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.238.dist-info}/WHEEL +0 -0
- {PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.238.dist-info}/entry_points.txt +0 -0
- {PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.238.dist-info}/top_level.txt +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
VERSION='0.13.20250221.238'
|
@@ -29,3 +29,8 @@ class PKUserService:
|
|
29
29
|
print(f"[UserService] Notifying for scanner: {scannerID} with notification: {notification}")
|
30
30
|
# Publish the event
|
31
31
|
globalEventsSignal.send(self, scannerID=scannerID,notification=notification)
|
32
|
+
|
33
|
+
def send_event(self, event_name, event_params=None):
|
34
|
+
"""Send a custom event to Google Analytics."""
|
35
|
+
# Publish the event
|
36
|
+
globalEventsSignal.send(self, eventType="ga",event_name=event_name,event_params=event_params)
|
@@ -0,0 +1,87 @@
|
|
1
|
+
"""
|
2
|
+
The MIT License (MIT)
|
3
|
+
|
4
|
+
Copyright (c) 2023 pkjmesra
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
8
|
+
in the Software without restriction, including without limitation the rights
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
11
|
+
furnished to do so, subject to the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
14
|
+
copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
22
|
+
SOFTWARE.
|
23
|
+
|
24
|
+
"""
|
25
|
+
import uuid
|
26
|
+
import requests
|
27
|
+
from PKDevTools.classes.pubsub.events import globalEventsSignal
|
28
|
+
from PKDevTools.classes.DBManager import DBManager
|
29
|
+
from PKDevTools.classes.Telegram import send_message
|
30
|
+
|
31
|
+
from PKDevTools.classes.Singleton import SingletonType, SingletonMixin
|
32
|
+
|
33
|
+
class PKNotificationService(SingletonMixin, metaclass=SingletonType):
|
34
|
+
def __init__(self):
|
35
|
+
super(PKNotificationService, self).__init__()
|
36
|
+
# Subscribe to the event
|
37
|
+
globalEventsSignal.connect(self.notify)
|
38
|
+
|
39
|
+
def notify(self, sender, **kwargs):
|
40
|
+
if 'eventType' in kwargs:
|
41
|
+
if kwargs['eventType'] == "ga":
|
42
|
+
# Capture GA event
|
43
|
+
event_name = kwargs['event_name']
|
44
|
+
event_params = kwargs['event_params']
|
45
|
+
if event_params is None:
|
46
|
+
event_params = {}
|
47
|
+
|
48
|
+
payload = {
|
49
|
+
"client_id": str(uuid.uuid4()), # Unique client ID for GA
|
50
|
+
"events": [{
|
51
|
+
"name": event_name,
|
52
|
+
"params": event_params
|
53
|
+
}]
|
54
|
+
}
|
55
|
+
# Google Analytics API Details
|
56
|
+
MEASUREMENT_ID = "G-T0TLV56Y0C"
|
57
|
+
API_SECRET = "2dD6iqHQQl2EzhCvHXA7EQ"
|
58
|
+
GA_ENDPOINT = f"https://www.google-analytics.com/mp/collect?measurement_id={MEASUREMENT_ID}&api_secret={API_SECRET}"
|
59
|
+
|
60
|
+
try:
|
61
|
+
response = requests.post(GA_ENDPOINT, json=payload)
|
62
|
+
# if response.status_code == 204:
|
63
|
+
# print(f"Event '{event_name}' sent successfully")
|
64
|
+
# else:
|
65
|
+
# print(f"Error sending event: {response.text}")
|
66
|
+
except Exception as e:
|
67
|
+
# print(f"Failed to send event: {e}")
|
68
|
+
pass
|
69
|
+
else:
|
70
|
+
notificationText = kwargs['notification'] if 'notification' in kwargs else ""
|
71
|
+
scannerID = kwargs['scannerID'] if 'scannerID' in kwargs else ""
|
72
|
+
print(f"[Notification] Notifying for {scannerID} with data: {notificationText}")
|
73
|
+
dbManager = DBManager()
|
74
|
+
try:
|
75
|
+
if len(str(scannerID)) > 0:
|
76
|
+
userIDs = dbManager.usersForScannerJobId(scannerJobId=scannerID)
|
77
|
+
if len(userIDs) > 0:
|
78
|
+
for userID in userIDs:
|
79
|
+
send_message(message=notificationText,userID=userID,parse_type="HTML",)
|
80
|
+
else:
|
81
|
+
print(f"Error encountered:\n0 length scannerID passed for {notificationText}")
|
82
|
+
except Exception as e:
|
83
|
+
print(f"Error encountered:\n{e}")
|
84
|
+
pass
|
85
|
+
|
86
|
+
# Ensure the subscriber is instantiated so it listens to events
|
87
|
+
notification_service = PKNotificationService()
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: PKDevTools
|
3
|
-
Version: 0.13.
|
3
|
+
Version: 0.13.20250221.238
|
4
4
|
Summary: A general day-to-day toolset for PKScreener repos
|
5
5
|
Home-page: https://github.com/pkjmesra/PKDevTools
|
6
|
-
Download-URL: https://github.com/pkjmesra/PKDevTools/archive/v0.13.
|
6
|
+
Download-URL: https://github.com/pkjmesra/PKDevTools/archive/v0.13.20250221.238.zip
|
7
7
|
Author: pkjmesra
|
8
8
|
Author-email: pkjmesra@gmail.com
|
9
9
|
License: OSI Approved (MIT)
|
@@ -0,0 +1,48 @@
|
|
1
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/LICENSE.txt,sha256=wrl88eUZgDW6osq1UZIU4s4uZCgqGcLa46dS_sMVLik,1086
|
2
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/README.txt,sha256=9wsN1KwyM_gfEN7__AHy6iS-OMjN7dId3E2egalqIpw,4290
|
3
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/__init__.py,sha256=IFxLtOl_ylBuZt4nqrHkgZg4uuyeuLjHRaBgTuZey8U,1176
|
4
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/release.md,sha256=FfltoyIaP9mdbGYgPFnZyuI_rSjkuKn4NoyO4jNCqtI,1767
|
5
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/requirements.txt,sha256=gIi80r4cnzM0qaDBmmWp8p3dWVAtMUoGLnrAqy2w4a4,393
|
6
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/Archiver.py,sha256=lT-ybDUYRBQ26WkCy53yf5f2iV6RJEtaiB9Lu8Lb0Og,6469
|
7
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/ColorText.py,sha256=UDqA229ujXwGDB1PkkMT-ZTu6VIWgZyIaq4XXPjFmsI,8789
|
8
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/Committer.py,sha256=L3sYt6a09T7sxapeFhAErVTe93HDZ8vbxsZREadsGJ8,4629
|
9
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/CookieHelper.py,sha256=b781bqVWVgIot9n-KhJja31Qrcwow4iVqpxeav30f4k,6376
|
10
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/DBManager.py,sha256=hYpOvccvuGT8-V81iMV36Wn48GIjDnvUrVIEq0Mt_Fg,31318
|
11
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/Environment.py,sha256=xhKosR8odmENok7rZ8CwmSp_fn0d6RhnZY2bHUxlS1U,2030
|
12
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/Fetcher.py,sha256=LCBaakl5LcktasnO7rvrVY4AEOIl6fzeWPZPjkER2lo,9202
|
13
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/FunctionTimeouts.py,sha256=1HyzFWasJ2Rvhj8TJvGq3IcAg5naU3Fe-70LLRMkrfQ,2608
|
14
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/GmailReader.py,sha256=NpLecHeHLBP4VXHfxBXoV3CeiwcQUuVFWp_mq2mSZLA,7562
|
15
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/MarketHours.py,sha256=8hpCEEAC3fMseURaaYkVGMm3Nbju3L_tdTOsMZsY7kg,2216
|
16
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/MenuOptions.py,sha256=4t60fcsvwM7-Yr-_xtH3eiu_ll4Rrb1ScafMt3BHQNU,11963
|
17
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/NSEMarketStatus.py,sha256=sdJkmRNckgWZORPsOfX6F7YmHrQsOhJ-Kvjghf24isM,5694
|
18
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/OutputControls.py,sha256=CbeDN9Vq-N_0sMCpkn5LrqWEvITBLmwuUPaXb7SSXtU,3554
|
19
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/PKDateUtilities.py,sha256=W4qF_Rr3f6ad5qbdfRu0MY4b2ScBkE1TzKtLn1Gw7MU,18263
|
20
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/PKGitFolderDownloader.py,sha256=470KcaCH1jTyJnTt3RmPhKrgHFOcYx42uPFL-NHM3AM,2988
|
21
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/PKJoinableQueue.py,sha256=WTfeqKh82_DcnSFYvkmx9WjM-RMeXBEmSmeYkD8e58E,5243
|
22
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/PKMultiProcessorClient.py,sha256=tUeZ7vQzs2SX7WbGfOGlq-SOLgKq2CZyeLPlsFbF6QI,13505
|
23
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/PKPickler.py,sha256=AkvQKQY-aowtu_TqAUg_7m_bTSxt7NvGYN4CkJymvmg,14369
|
24
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/PKTimer.py,sha256=tdJhODrs8zzxb12tc4BGzxGgY9xRWXNqtjYBD2PNOts,3433
|
25
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/Pikey.py,sha256=jgm9xLfRk4DCPLO5MgEui76IrMiPGUl2XvsnxO0qmJc,2813
|
26
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/Singleton.py,sha256=dbFRNdaVceUp7gb7Or7Xa2u3Id8H1Ce8-DyOG32zS-Q,4556
|
27
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/SuppressOutput.py,sha256=gjgByErulUjsZ1JVgkSNFmXC9qdkg4V0YrhT1tFmJuE,2004
|
28
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/System.py,sha256=UBM7A86NQhlRInCItb0mFs4plFE7ewXOXLn4KUtMiNg,4092
|
29
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/Telegram.py,sha256=AGR7LQCLGRId8S16bN6JA_YrYtjHJqpG6w4KvOVhHiw,15877
|
30
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/UserSubscriptions.py,sha256=G9PC3kuBHjbVRGTDqV265iCpzjxMmoAEyRQuo9awe1M,11266
|
31
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/Utils.py,sha256=7a19Gb1SPGPQxa6bhNW-DncvDpEVTdrCuDttAjV4uc8,24543
|
32
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/WorkflowManager.py,sha256=UdNZ_iGXLxO1K13Dv7do4w6ecyAoxaPlBLETFuXyGbc,9984
|
33
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/__init__.py,sha256=cK92vyOT1Yoh3Kh8tI7MwV77t7Ti3ypKxB-GcQlJ5Z0,28
|
34
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/githubutilities.py,sha256=yRkJX2W3i3yCpFEUjEBGrk_2UX4vbscBvoJJoLDaD_k,3738
|
35
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/log.py,sha256=aDA5bd8L2bKAGLZzTFCD2gvXq6MbfceEkE-t_J89V40,16136
|
36
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/multiprocessing_logging.py,sha256=Lrzn9w4lsOWwUN7Z4lHoXkD7f8DNR8Za2S4zzAvUqvo,7430
|
37
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/squash.py,sha256=tNNLO2BuieZm9AlKzVYesY7p2yCUeJX1rtkZxbnlGRg,2864
|
38
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/updater.py,sha256=yuHsGBVI-mm9_YrdCCRoKZ8HGro370UszM4s0zwZMC8,4846
|
39
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/pubsub/__init__.py,sha256=IFxLtOl_ylBuZt4nqrHkgZg4uuyeuLjHRaBgTuZey8U,1176
|
40
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/pubsub/events.py,sha256=6y3PsntBRv9ARfyAUT1hPpEngsdrnBrObTyd8Y2y99o,1265
|
41
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/pubsub/publisher.py,sha256=peo95WGxtKKc37hGMoFsVzGnYxcBJAfVYVKO1SSQdQk,1792
|
42
|
+
PKDevTools-0.13.20250221.238.data/purelib/PKDevTools/classes/pubsub/subscriber.py,sha256=we-b3LYDioVT2XPbFUnc7XlVjO551nNXQDU7GNStjZI,4058
|
43
|
+
PKDevTools-0.13.20250221.238.dist-info/LICENSE,sha256=wrl88eUZgDW6osq1UZIU4s4uZCgqGcLa46dS_sMVLik,1086
|
44
|
+
PKDevTools-0.13.20250221.238.dist-info/METADATA,sha256=KFVrUrfA5f-_0Mi4B7rN0rEDdZq6aND0ae_i8mmN9qY,6119
|
45
|
+
PKDevTools-0.13.20250221.238.dist-info/WHEEL,sha256=cRmSBGD-cl98KkuHMNqv9Ac9L9_VqTvcBYwpIvxN0cg,101
|
46
|
+
PKDevTools-0.13.20250221.238.dist-info/entry_points.txt,sha256=itdAnPuy8DO45uGuAEms0UJcoa2nGJVAUwm7NIL4-Yw,353
|
47
|
+
PKDevTools-0.13.20250221.238.dist-info/top_level.txt,sha256=WTig-LzPiEcyuyhbNRhJz1mX_RB-fojodPK48k3NmPg,11
|
48
|
+
PKDevTools-0.13.20250221.238.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
VERSION='0.13.20250218.236'
|
@@ -1,54 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
The MIT License (MIT)
|
3
|
-
|
4
|
-
Copyright (c) 2023 pkjmesra
|
5
|
-
|
6
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
-
of this software and associated documentation files (the "Software"), to deal
|
8
|
-
in the Software without restriction, including without limitation the rights
|
9
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
-
copies of the Software, and to permit persons to whom the Software is
|
11
|
-
furnished to do so, subject to the following conditions:
|
12
|
-
|
13
|
-
The above copyright notice and this permission notice shall be included in all
|
14
|
-
copies or substantial portions of the Software.
|
15
|
-
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
22
|
-
SOFTWARE.
|
23
|
-
|
24
|
-
"""
|
25
|
-
from PKDevTools.classes.pubsub.events import globalEventsSignal
|
26
|
-
from PKDevTools.classes.DBManager import DBManager
|
27
|
-
from PKDevTools.classes.Telegram import send_message
|
28
|
-
|
29
|
-
class PKNotificationService:
|
30
|
-
def __init__(self):
|
31
|
-
# Subscribe to the event
|
32
|
-
globalEventsSignal.connect(self.notify)
|
33
|
-
|
34
|
-
def notify(self, sender, **kwargs):
|
35
|
-
notificationText = kwargs['notification'] if 'notification' in kwargs else ""
|
36
|
-
scannerID = kwargs['scannerID'] if 'scannerID' in kwargs else ""
|
37
|
-
print(f"[Notification] Notifying for {scannerID} with data: {notificationText}")
|
38
|
-
dbManager = DBManager()
|
39
|
-
try:
|
40
|
-
if len(str(scannerID)) > 0:
|
41
|
-
userIDs = dbManager.usersForScannerJobId(scannerJobId=scannerID)
|
42
|
-
if len(userIDs) > 0:
|
43
|
-
for userID in userIDs:
|
44
|
-
send_message(message=notificationText,userID=userID,parse_type="HTML",)
|
45
|
-
else:
|
46
|
-
print(f"Error encountered:\n0 length scannerID passed for {notificationText}")
|
47
|
-
except Exception as e:
|
48
|
-
print(f"Error encountered:\n{e}")
|
49
|
-
pass
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
# Ensure the subscriber is instantiated so it listens to events
|
54
|
-
notification_service = PKNotificationService()
|
@@ -1,48 +0,0 @@
|
|
1
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/LICENSE.txt,sha256=wrl88eUZgDW6osq1UZIU4s4uZCgqGcLa46dS_sMVLik,1086
|
2
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/README.txt,sha256=9wsN1KwyM_gfEN7__AHy6iS-OMjN7dId3E2egalqIpw,4290
|
3
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/__init__.py,sha256=IFxLtOl_ylBuZt4nqrHkgZg4uuyeuLjHRaBgTuZey8U,1176
|
4
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/release.md,sha256=FfltoyIaP9mdbGYgPFnZyuI_rSjkuKn4NoyO4jNCqtI,1767
|
5
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/requirements.txt,sha256=gIi80r4cnzM0qaDBmmWp8p3dWVAtMUoGLnrAqy2w4a4,393
|
6
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Archiver.py,sha256=lT-ybDUYRBQ26WkCy53yf5f2iV6RJEtaiB9Lu8Lb0Og,6469
|
7
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/ColorText.py,sha256=UDqA229ujXwGDB1PkkMT-ZTu6VIWgZyIaq4XXPjFmsI,8789
|
8
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Committer.py,sha256=L3sYt6a09T7sxapeFhAErVTe93HDZ8vbxsZREadsGJ8,4629
|
9
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/CookieHelper.py,sha256=b781bqVWVgIot9n-KhJja31Qrcwow4iVqpxeav30f4k,6376
|
10
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/DBManager.py,sha256=hYpOvccvuGT8-V81iMV36Wn48GIjDnvUrVIEq0Mt_Fg,31318
|
11
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Environment.py,sha256=xhKosR8odmENok7rZ8CwmSp_fn0d6RhnZY2bHUxlS1U,2030
|
12
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Fetcher.py,sha256=LCBaakl5LcktasnO7rvrVY4AEOIl6fzeWPZPjkER2lo,9202
|
13
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/FunctionTimeouts.py,sha256=1HyzFWasJ2Rvhj8TJvGq3IcAg5naU3Fe-70LLRMkrfQ,2608
|
14
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/GmailReader.py,sha256=NpLecHeHLBP4VXHfxBXoV3CeiwcQUuVFWp_mq2mSZLA,7562
|
15
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/MarketHours.py,sha256=8hpCEEAC3fMseURaaYkVGMm3Nbju3L_tdTOsMZsY7kg,2216
|
16
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/MenuOptions.py,sha256=4t60fcsvwM7-Yr-_xtH3eiu_ll4Rrb1ScafMt3BHQNU,11963
|
17
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/NSEMarketStatus.py,sha256=sdJkmRNckgWZORPsOfX6F7YmHrQsOhJ-Kvjghf24isM,5694
|
18
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/OutputControls.py,sha256=CbeDN9Vq-N_0sMCpkn5LrqWEvITBLmwuUPaXb7SSXtU,3554
|
19
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKDateUtilities.py,sha256=W4qF_Rr3f6ad5qbdfRu0MY4b2ScBkE1TzKtLn1Gw7MU,18263
|
20
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKGitFolderDownloader.py,sha256=470KcaCH1jTyJnTt3RmPhKrgHFOcYx42uPFL-NHM3AM,2988
|
21
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKJoinableQueue.py,sha256=WTfeqKh82_DcnSFYvkmx9WjM-RMeXBEmSmeYkD8e58E,5243
|
22
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKMultiProcessorClient.py,sha256=tUeZ7vQzs2SX7WbGfOGlq-SOLgKq2CZyeLPlsFbF6QI,13505
|
23
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKPickler.py,sha256=AkvQKQY-aowtu_TqAUg_7m_bTSxt7NvGYN4CkJymvmg,14369
|
24
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKTimer.py,sha256=tdJhODrs8zzxb12tc4BGzxGgY9xRWXNqtjYBD2PNOts,3433
|
25
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Pikey.py,sha256=jgm9xLfRk4DCPLO5MgEui76IrMiPGUl2XvsnxO0qmJc,2813
|
26
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Singleton.py,sha256=dbFRNdaVceUp7gb7Or7Xa2u3Id8H1Ce8-DyOG32zS-Q,4556
|
27
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/SuppressOutput.py,sha256=gjgByErulUjsZ1JVgkSNFmXC9qdkg4V0YrhT1tFmJuE,2004
|
28
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/System.py,sha256=UBM7A86NQhlRInCItb0mFs4plFE7ewXOXLn4KUtMiNg,4092
|
29
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Telegram.py,sha256=AGR7LQCLGRId8S16bN6JA_YrYtjHJqpG6w4KvOVhHiw,15877
|
30
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/UserSubscriptions.py,sha256=G9PC3kuBHjbVRGTDqV265iCpzjxMmoAEyRQuo9awe1M,11266
|
31
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Utils.py,sha256=7a19Gb1SPGPQxa6bhNW-DncvDpEVTdrCuDttAjV4uc8,24543
|
32
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/WorkflowManager.py,sha256=UdNZ_iGXLxO1K13Dv7do4w6ecyAoxaPlBLETFuXyGbc,9984
|
33
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/__init__.py,sha256=DpzW3Iz2oAF9dbp-LZmWra4eBwu2dxX-4AgKLGWV9zE,28
|
34
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/githubutilities.py,sha256=yRkJX2W3i3yCpFEUjEBGrk_2UX4vbscBvoJJoLDaD_k,3738
|
35
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/log.py,sha256=aDA5bd8L2bKAGLZzTFCD2gvXq6MbfceEkE-t_J89V40,16136
|
36
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/multiprocessing_logging.py,sha256=Lrzn9w4lsOWwUN7Z4lHoXkD7f8DNR8Za2S4zzAvUqvo,7430
|
37
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/squash.py,sha256=tNNLO2BuieZm9AlKzVYesY7p2yCUeJX1rtkZxbnlGRg,2864
|
38
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/updater.py,sha256=yuHsGBVI-mm9_YrdCCRoKZ8HGro370UszM4s0zwZMC8,4846
|
39
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/__init__.py,sha256=IFxLtOl_ylBuZt4nqrHkgZg4uuyeuLjHRaBgTuZey8U,1176
|
40
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/events.py,sha256=6y3PsntBRv9ARfyAUT1hPpEngsdrnBrObTyd8Y2y99o,1265
|
41
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/publisher.py,sha256=1W5meGla2JJlc0_TnrNzO6dWrMPzzBdRT1vbm5-XkNY,1544
|
42
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/subscriber.py,sha256=ucVC0-T92jT-0xsZf69jeqBcXoxgztR7tJf0S-4Iidw,2461
|
43
|
-
PKDevTools-0.13.20250218.236.dist-info/LICENSE,sha256=wrl88eUZgDW6osq1UZIU4s4uZCgqGcLa46dS_sMVLik,1086
|
44
|
-
PKDevTools-0.13.20250218.236.dist-info/METADATA,sha256=EM45i97AAkS4SvqM5ni08AUpRvh6VkAIReUG-CLETPM,6119
|
45
|
-
PKDevTools-0.13.20250218.236.dist-info/WHEEL,sha256=cRmSBGD-cl98KkuHMNqv9Ac9L9_VqTvcBYwpIvxN0cg,101
|
46
|
-
PKDevTools-0.13.20250218.236.dist-info/entry_points.txt,sha256=itdAnPuy8DO45uGuAEms0UJcoa2nGJVAUwm7NIL4-Yw,353
|
47
|
-
PKDevTools-0.13.20250218.236.dist-info/top_level.txt,sha256=WTig-LzPiEcyuyhbNRhJz1mX_RB-fojodPK48k3NmPg,11
|
48
|
-
PKDevTools-0.13.20250218.236.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.238.dist-info}/entry_points.txt
RENAMED
File without changes
|
{PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.238.dist-info}/top_level.txt
RENAMED
File without changes
|