PKDevTools 0.13.20250218.236__cp310-cp310-macosx_10_9_x86_64.whl → 0.13.20250221.237__cp310-cp310-macosx_10_9_x86_64.whl
Sign up to get free protection for your applications and to get access to all the features.
- PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/__init__.py +1 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/pubsub/publisher.py +5 -0
- PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/pubsub/subscriber.py +84 -0
- {PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.237.dist-info}/METADATA +2 -2
- PKDevTools-0.13.20250221.237.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.237.data}/purelib/PKDevTools/LICENSE.txt +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/README.txt +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/__init__.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/Archiver.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/ColorText.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/Committer.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/CookieHelper.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/DBManager.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/Environment.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/Fetcher.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/FunctionTimeouts.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/GmailReader.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/MarketHours.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/MenuOptions.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/NSEMarketStatus.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/OutputControls.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/PKDateUtilities.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/PKGitFolderDownloader.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/PKJoinableQueue.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/PKMultiProcessorClient.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/PKPickler.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/PKTimer.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/Pikey.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/Singleton.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/SuppressOutput.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/System.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/Telegram.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/UserSubscriptions.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/Utils.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/WorkflowManager.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/githubutilities.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/log.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/multiprocessing_logging.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/pubsub/__init__.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/pubsub/events.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/squash.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/classes/updater.py +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/release.md +0 -0
- {PKDevTools-0.13.20250218.236.data → PKDevTools-0.13.20250221.237.data}/purelib/PKDevTools/requirements.txt +0 -0
- {PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.237.dist-info}/LICENSE +0 -0
- {PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.237.dist-info}/WHEEL +0 -0
- {PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.237.dist-info}/entry_points.txt +0 -0
- {PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.237.dist-info}/top_level.txt +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
VERSION='0.13.20250221.237'
|
@@ -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,84 @@
|
|
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
|
+
class PKNotificationService:
|
32
|
+
def __init__(self):
|
33
|
+
# Subscribe to the event
|
34
|
+
globalEventsSignal.connect(self.notify)
|
35
|
+
|
36
|
+
def notify(self, sender, **kwargs):
|
37
|
+
if 'eventType' in kwargs:
|
38
|
+
if kwargs['eventType'] == "ga":
|
39
|
+
# Capture GA event
|
40
|
+
event_name = kwargs['event_name']
|
41
|
+
event_params = kwargs['event_params']
|
42
|
+
if event_params is None:
|
43
|
+
event_params = {}
|
44
|
+
|
45
|
+
payload = {
|
46
|
+
"client_id": str(uuid.uuid4()), # Unique client ID for GA
|
47
|
+
"events": [{
|
48
|
+
"name": event_name,
|
49
|
+
"params": event_params
|
50
|
+
}]
|
51
|
+
}
|
52
|
+
# Google Analytics API Details
|
53
|
+
MEASUREMENT_ID = "G-T0TLV56Y0C"
|
54
|
+
API_SECRET = "2dD6iqHQQl2EzhCvHXA7EQ"
|
55
|
+
GA_ENDPOINT = f"https://www.google-analytics.com/mp/collect?measurement_id={MEASUREMENT_ID}&api_secret={API_SECRET}"
|
56
|
+
|
57
|
+
try:
|
58
|
+
response = requests.post(GA_ENDPOINT, json=payload)
|
59
|
+
# if response.status_code == 204:
|
60
|
+
# print(f"Event '{event_name}' sent successfully")
|
61
|
+
# else:
|
62
|
+
# print(f"Error sending event: {response.text}")
|
63
|
+
except Exception as e:
|
64
|
+
# print(f"Failed to send event: {e}")
|
65
|
+
pass
|
66
|
+
else:
|
67
|
+
notificationText = kwargs['notification'] if 'notification' in kwargs else ""
|
68
|
+
scannerID = kwargs['scannerID'] if 'scannerID' in kwargs else ""
|
69
|
+
print(f"[Notification] Notifying for {scannerID} with data: {notificationText}")
|
70
|
+
dbManager = DBManager()
|
71
|
+
try:
|
72
|
+
if len(str(scannerID)) > 0:
|
73
|
+
userIDs = dbManager.usersForScannerJobId(scannerJobId=scannerID)
|
74
|
+
if len(userIDs) > 0:
|
75
|
+
for userID in userIDs:
|
76
|
+
send_message(message=notificationText,userID=userID,parse_type="HTML",)
|
77
|
+
else:
|
78
|
+
print(f"Error encountered:\n0 length scannerID passed for {notificationText}")
|
79
|
+
except Exception as e:
|
80
|
+
print(f"Error encountered:\n{e}")
|
81
|
+
pass
|
82
|
+
|
83
|
+
# Ensure the subscriber is instantiated so it listens to events
|
84
|
+
notification_service = PKNotificationService()
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: PKDevTools
|
3
|
-
Version: 0.13.
|
3
|
+
Version: 0.13.20250221.237
|
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.237.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.237.data/purelib/PKDevTools/LICENSE.txt,sha256=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
|
2
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/README.txt,sha256=xw2oGRJ1M9lmJqEYw3VBh7ZjlNx7hIZw6fcDzC0shu8,4233
|
3
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/__init__.py,sha256=QyaxuW4OGDxF6KXLC5avvZyLhfMt9KnKAb4m9j1XUls,1152
|
4
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/release.md,sha256=NcfNPeUU9uaz8mRiRZRqPWkSpwoHVShdrXJqOJdKbnQ,1729
|
5
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/requirements.txt,sha256=9jmqyzA5fSuYakmU3g3jNrUvSc7sM0tTKt4z9yVGNTw,369
|
6
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/Archiver.py,sha256=0D2wMp3a913QOsPXc0K_frtvpldDU7uIsP8DRAvaIQ0,6301
|
7
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/ColorText.py,sha256=sIsXd75jMtA44mdZQd6EO1MdFYQaH2IYukLEH9fZuEw,8585
|
8
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/Committer.py,sha256=cHsIe9DonzQULOZwrXGuodatFSDNm5UiQafjVlWn-BE,4536
|
9
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/CookieHelper.py,sha256=PxW1_VanZ7AY7o7jMYxISBj9yhs69L0Sd8wvXYCRXAo,6212
|
10
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/DBManager.py,sha256=RQCDrZE0hfWz_mtnunqqntpzNAkqxvpk_5G9qPidqJ0,30642
|
11
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/Environment.py,sha256=hvQwkjz9QunX0-3Dcuw5E76fjaejmHvrmiAOME9TqE4,1978
|
12
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/Fetcher.py,sha256=W-yCSSujFie58lYAZ4HVo1gZey9R3Qpe3JL16F-eo9I,9011
|
13
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/FunctionTimeouts.py,sha256=xbxp-txDqiQOzVjazbrEPITMGvUIXQ0HqfFh8vYr4WU,2541
|
14
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/GmailReader.py,sha256=brgcUCfk-8DApUWuqgqIVp5sC5G_pq7iONEPV3kYbCw,7426
|
15
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/MarketHours.py,sha256=2aRzd8JfCmxc3UryvrpUS7DvHuctpz_U-E0nv72gEaY,2159
|
16
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/MenuOptions.py,sha256=MC_OblDzSMCENVEZCQQX4whmY3vQAhE2oBZOL69JzyA,11606
|
17
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/NSEMarketStatus.py,sha256=fpWLKod5HxgJIilu1G5a7FcSwmuGq1DmwBx2k-MDHs0,5552
|
18
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/OutputControls.py,sha256=cXI8l2ZIJAZbTbVbG7wu7iNgMBFfs51XapCS27lNjmU,3472
|
19
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/PKDateUtilities.py,sha256=QIjCGyTMkax5mv0qGC9gjLxaz4zTFX2oRqDhXAbQ8Gk,17873
|
20
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/PKGitFolderDownloader.py,sha256=RM7ZQCERKl_ttlAoo5Nt9FKuWWUirQxCxL1thZ12_hE,2936
|
21
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/PKJoinableQueue.py,sha256=8eWkWiOaqGCAegV30-bgpPsfmhVVpuxLHdyrJNY3_OY,5122
|
22
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/PKMultiProcessorClient.py,sha256=Y5t_f14z6ygzPUHDH6YJIqLrm9s7TFk5ayLxK8MeTgw,13214
|
23
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/PKPickler.py,sha256=M2F2_Z7XAmo7qfzOEiVLq3RzpldfU8Y-MfMPrMZbNGU,14082
|
24
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/PKTimer.py,sha256=Y0jmvrXKLkwNH3j5qIwpL_th-Nf26oCHnxsZ7_AuV8U,3345
|
25
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/Pikey.py,sha256=wDiOUIRSxYOIO7GGUw1eGrbDuVvJ-YAU6_dfQWRp2Fk,2744
|
26
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/Singleton.py,sha256=tBIFCgVKqs5-K6w_wx0FNNT5aks1QmOLjE_xTMHbb10,4432
|
27
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/SuppressOutput.py,sha256=yAsdxsVJCbVi-irsxa_ClY7JutbRU_eAEMhw4NW4QdE,1951
|
28
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/System.py,sha256=tMNnGUQdhUjkysJ2b9EI8dy8iXdaHkshRXpeKZlyPf8,4005
|
29
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/Telegram.py,sha256=_BnnsgUZL1pYZdcJensbUcvW6bi_tqvt6miTQf6OCY8,15505
|
30
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/UserSubscriptions.py,sha256=P52b-a-UzFWKpQsT4zQFyfKcXhAZS6uyQ2yeIUqHWeQ,11067
|
31
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/Utils.py,sha256=P_kJnTgMK6fA6SwIvNLThvHxYVcazhD5Zo5WL_kpC3Y,24264
|
32
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/WorkflowManager.py,sha256=rDamQR0fF-YSzOQTjMJnksJ6dxKs-PazW6fVFlAQ_Sk,9759
|
33
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/__init__.py,sha256=R_FnIQScmDz9Smqk3o1-cIIexDoVvASd5HH3xHTEf5U,28
|
34
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/githubutilities.py,sha256=UNSJzx8Ybn_x6zaSk497KQsMyDX7MYnQjjV-F0KP_Z0,3650
|
35
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/log.py,sha256=r-KBSGYXJ67Uzw51cNisB3x3uB5mlQWSOO_E6c_m1F8,15616
|
36
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/multiprocessing_logging.py,sha256=8W4fHL1Kstp2FIML6N6ghT--8HE4bmak3sZ1fsWF52U,7212
|
37
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/squash.py,sha256=iZ4MsOW_evD4VoWjO9pEHd2gWeswthM7uWSgVRpFvDw,2782
|
38
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/updater.py,sha256=NQ46ulqswdXkjljFwPiwufgGoCZB-Fc7DdYYh9LyS-0,4709
|
39
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/pubsub/__init__.py,sha256=QyaxuW4OGDxF6KXLC5avvZyLhfMt9KnKAb4m9j1XUls,1152
|
40
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/pubsub/events.py,sha256=hjkGmZF51WmR9dQ81vZPAoiVuCKGwNABvYbcFKB3FKA,1236
|
41
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/pubsub/publisher.py,sha256=h7LQIrKDaMxSgJUSmrMXVuWY6QUGDgVKfP-Y2aRMNQA,1756
|
42
|
+
PKDevTools-0.13.20250221.237.data/purelib/PKDevTools/classes/pubsub/subscriber.py,sha256=1h86jlIapmE86XoJckPKsLYFt8PY-LFoHf8HQtWsuzI,3804
|
43
|
+
PKDevTools-0.13.20250221.237.dist-info/LICENSE,sha256=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
|
44
|
+
PKDevTools-0.13.20250221.237.dist-info/METADATA,sha256=VZemTbs3nZgReL3c1RKmWH81Suhc6Gl5KPhvSeyDfHM,5776
|
45
|
+
PKDevTools-0.13.20250221.237.dist-info/WHEEL,sha256=qW9xlwewyQBufEUzmM-8CIjZ7fR659LOSrcgouui4Z4,111
|
46
|
+
PKDevTools-0.13.20250221.237.dist-info/entry_points.txt,sha256=itdAnPuy8DO45uGuAEms0UJcoa2nGJVAUwm7NIL4-Yw,353
|
47
|
+
PKDevTools-0.13.20250221.237.dist-info/top_level.txt,sha256=WTig-LzPiEcyuyhbNRhJz1mX_RB-fojodPK48k3NmPg,11
|
48
|
+
PKDevTools-0.13.20250221.237.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=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
|
2
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/README.txt,sha256=xw2oGRJ1M9lmJqEYw3VBh7ZjlNx7hIZw6fcDzC0shu8,4233
|
3
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/__init__.py,sha256=QyaxuW4OGDxF6KXLC5avvZyLhfMt9KnKAb4m9j1XUls,1152
|
4
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/release.md,sha256=NcfNPeUU9uaz8mRiRZRqPWkSpwoHVShdrXJqOJdKbnQ,1729
|
5
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/requirements.txt,sha256=9jmqyzA5fSuYakmU3g3jNrUvSc7sM0tTKt4z9yVGNTw,369
|
6
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Archiver.py,sha256=0D2wMp3a913QOsPXc0K_frtvpldDU7uIsP8DRAvaIQ0,6301
|
7
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/ColorText.py,sha256=sIsXd75jMtA44mdZQd6EO1MdFYQaH2IYukLEH9fZuEw,8585
|
8
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Committer.py,sha256=cHsIe9DonzQULOZwrXGuodatFSDNm5UiQafjVlWn-BE,4536
|
9
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/CookieHelper.py,sha256=PxW1_VanZ7AY7o7jMYxISBj9yhs69L0Sd8wvXYCRXAo,6212
|
10
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/DBManager.py,sha256=RQCDrZE0hfWz_mtnunqqntpzNAkqxvpk_5G9qPidqJ0,30642
|
11
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Environment.py,sha256=hvQwkjz9QunX0-3Dcuw5E76fjaejmHvrmiAOME9TqE4,1978
|
12
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Fetcher.py,sha256=W-yCSSujFie58lYAZ4HVo1gZey9R3Qpe3JL16F-eo9I,9011
|
13
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/FunctionTimeouts.py,sha256=xbxp-txDqiQOzVjazbrEPITMGvUIXQ0HqfFh8vYr4WU,2541
|
14
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/GmailReader.py,sha256=brgcUCfk-8DApUWuqgqIVp5sC5G_pq7iONEPV3kYbCw,7426
|
15
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/MarketHours.py,sha256=2aRzd8JfCmxc3UryvrpUS7DvHuctpz_U-E0nv72gEaY,2159
|
16
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/MenuOptions.py,sha256=MC_OblDzSMCENVEZCQQX4whmY3vQAhE2oBZOL69JzyA,11606
|
17
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/NSEMarketStatus.py,sha256=fpWLKod5HxgJIilu1G5a7FcSwmuGq1DmwBx2k-MDHs0,5552
|
18
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/OutputControls.py,sha256=cXI8l2ZIJAZbTbVbG7wu7iNgMBFfs51XapCS27lNjmU,3472
|
19
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKDateUtilities.py,sha256=QIjCGyTMkax5mv0qGC9gjLxaz4zTFX2oRqDhXAbQ8Gk,17873
|
20
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKGitFolderDownloader.py,sha256=RM7ZQCERKl_ttlAoo5Nt9FKuWWUirQxCxL1thZ12_hE,2936
|
21
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKJoinableQueue.py,sha256=8eWkWiOaqGCAegV30-bgpPsfmhVVpuxLHdyrJNY3_OY,5122
|
22
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKMultiProcessorClient.py,sha256=Y5t_f14z6ygzPUHDH6YJIqLrm9s7TFk5ayLxK8MeTgw,13214
|
23
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKPickler.py,sha256=M2F2_Z7XAmo7qfzOEiVLq3RzpldfU8Y-MfMPrMZbNGU,14082
|
24
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKTimer.py,sha256=Y0jmvrXKLkwNH3j5qIwpL_th-Nf26oCHnxsZ7_AuV8U,3345
|
25
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Pikey.py,sha256=wDiOUIRSxYOIO7GGUw1eGrbDuVvJ-YAU6_dfQWRp2Fk,2744
|
26
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Singleton.py,sha256=tBIFCgVKqs5-K6w_wx0FNNT5aks1QmOLjE_xTMHbb10,4432
|
27
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/SuppressOutput.py,sha256=yAsdxsVJCbVi-irsxa_ClY7JutbRU_eAEMhw4NW4QdE,1951
|
28
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/System.py,sha256=tMNnGUQdhUjkysJ2b9EI8dy8iXdaHkshRXpeKZlyPf8,4005
|
29
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Telegram.py,sha256=_BnnsgUZL1pYZdcJensbUcvW6bi_tqvt6miTQf6OCY8,15505
|
30
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/UserSubscriptions.py,sha256=P52b-a-UzFWKpQsT4zQFyfKcXhAZS6uyQ2yeIUqHWeQ,11067
|
31
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Utils.py,sha256=P_kJnTgMK6fA6SwIvNLThvHxYVcazhD5Zo5WL_kpC3Y,24264
|
32
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/WorkflowManager.py,sha256=rDamQR0fF-YSzOQTjMJnksJ6dxKs-PazW6fVFlAQ_Sk,9759
|
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=UNSJzx8Ybn_x6zaSk497KQsMyDX7MYnQjjV-F0KP_Z0,3650
|
35
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/log.py,sha256=r-KBSGYXJ67Uzw51cNisB3x3uB5mlQWSOO_E6c_m1F8,15616
|
36
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/multiprocessing_logging.py,sha256=8W4fHL1Kstp2FIML6N6ghT--8HE4bmak3sZ1fsWF52U,7212
|
37
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/squash.py,sha256=iZ4MsOW_evD4VoWjO9pEHd2gWeswthM7uWSgVRpFvDw,2782
|
38
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/updater.py,sha256=NQ46ulqswdXkjljFwPiwufgGoCZB-Fc7DdYYh9LyS-0,4709
|
39
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/__init__.py,sha256=QyaxuW4OGDxF6KXLC5avvZyLhfMt9KnKAb4m9j1XUls,1152
|
40
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/events.py,sha256=hjkGmZF51WmR9dQ81vZPAoiVuCKGwNABvYbcFKB3FKA,1236
|
41
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/publisher.py,sha256=08wlR55GRCtLAt4uSuz78XqS6_2O70FGTFJmnvOFnko,1513
|
42
|
-
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/subscriber.py,sha256=ucDZbJal3iUzEfiA6UlcZIOKVtN5YvYRISiqWJ4753w,2407
|
43
|
-
PKDevTools-0.13.20250218.236.dist-info/LICENSE,sha256=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
|
44
|
-
PKDevTools-0.13.20250218.236.dist-info/METADATA,sha256=uWXCApxFM7myB-TGl1Usyn8ZKjZCHMAnfY8wXX1SE24,5776
|
45
|
-
PKDevTools-0.13.20250218.236.dist-info/WHEEL,sha256=qW9xlwewyQBufEUzmM-8CIjZ7fR659LOSrcgouui4Z4,111
|
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.237.dist-info}/entry_points.txt
RENAMED
File without changes
|
{PKDevTools-0.13.20250218.236.dist-info → PKDevTools-0.13.20250221.237.dist-info}/top_level.txt
RENAMED
File without changes
|