-
Notifications
You must be signed in to change notification settings - Fork 0
/
clipee_chrome_discard.py
163 lines (111 loc) · 3.71 KB
/
clipee_chrome_discard.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
"""
Copy URL from Chrome and update people table in DB
"""
import time
from datetime import datetime
import os
import subprocess
import sqlite3
import sys
sys.path.append(f"/Users/nic/Python/indeXee")
from dotenv import load_dotenv
load_dotenv()
# PATH_DISCARD_TEXT_FILE = os.getenv("PATH_DISCARD_TEXT_FILE")
DB = os.getenv("DB_BTOB")
## for pasting
from pynput.keyboard import Key, Controller
keyb = Controller()
# from DB.tools import update_record
import my_utils
from pync import Notifier
# Functions
def get_clipboard_content():
clipboard_content = subprocess.check_output(['pbpaste']).decode('utf-8')
return clipboard_content
def select_content_from_chrome_address_bar():
with keyb.pressed(Key.ctrl):
keyb.press('l')
keyb.release('l')
def copy():
with keyb.pressed(Key.cmd):
keyb.press('d')
keyb.release('d')
def set_clipboard_value(value):
# Use subprocess to call the pbcopy command on macOS to set the clipboard value
subprocess.run("pbcopy", universal_newlines=True, input=value)
def get_people_rowid_from_linkedin_handle(linkedin_handle):
# Establish a database connection
conn = sqlite3.connect(DB)
# SQL query to get rowid from people table
sql = """
SELECT rowid FROM people
WHERE linkedin LIKE ?
"""
# Execute the SQL query and retrieve the row
cursor = conn.execute(sql, ('%' + linkedin_handle + '%',))
row = cursor.fetchone()
# Close the database connection
conn.close()
# Check if a row was found and return the rowid
if row is not None:
rowid = row[0]
return rowid
else:
# Handle the case when no matching row is found
return None
def get_chrome_active_tab_url():
try:
script = '''
tell application "Google Chrome"
set activeTabUrl to URL of active tab of front window
return activeTabUrl
end tell
'''
result = subprocess.run(['osascript', '-e', script], capture_output=True, text=True)
url = result.stdout.strip()
print(f"\n🚹 Active tab URL: {url}")
return url
except Exception as e:
print(f"Error: {e}")
return None
def update_db(linkedin_handle):
from DB.tools import update_record
try:
rowid = get_people_rowid_from_linkedin_handle(linkedin_handle)
update_record(DB, 'people', {
'rowid': rowid,
'discard': 1,
'lead_rank': 'D',
'notes': f"{datetime.now().strftime('%Y-%m-%d %H:%M')} discarded manually",
'updated': f"{datetime.now().strftime('%Y-%m-%d %H:%M')}",
})
linkedin_handle = my_utils.linkedin_handle_from_url(url)
Notifier.notify(
title='SUCCESS',
message=f'🟢🟢🟢 discarded\n{linkedin_handle}',
)
except Exception as e:
Notifier.notify(
title='FAIL - people table',
message=f'🔴🔴🔴 ERROR: {e}\nwith {linkedin_handle}',
)
# MAIN
# ## keep old clipboard content
# old_clipboard_content = get_clipboard_content()
# select_content_from_chrome_address_bar()
# time.sleep(0.2)
# copy()
# url = get_clipboard_content()
# url = url.lower().strip()
# if url.endswith('/'):
# url = url[:-1]
# linkedin_handle = my_utils.linkedin_handle_from_url(url)
linkedin = get_chrome_active_tab_url()
linkedin_handle = my_utils.linkedin_handle_from_url(linkedin)
# Notifier.notify(
# title='COPIED',
# message=f'Linkedin handle {linkedin_handle} from {url}',
# )
update_db(linkedin_handle)
## restore old clipboard content
# set_clipboard_value(old_clipboard_content)