3
3
import plistlib
4
4
import sqlite3
5
5
import subprocess
6
+ import sys
6
7
import time
7
8
8
9
9
10
class SMS :
10
11
def __init__ (self , computer ):
11
12
self .computer = computer
12
- self .database_path = self .resolve_database_path ()
13
+ if sys .platform .lower () == "darwin" : # Only if macOS
14
+ self .database_path = self .resolve_database_path ()
15
+ else :
16
+ self .database_path = None
13
17
14
18
def resolve_database_path (self ):
15
- if os .geteuid () == 0 : # Running as root
16
- home_directory = os .path .expanduser (f"~{ os .environ .get ('SUDO_USER' )} " )
17
- else :
19
+ try :
20
+ if os .geteuid () == 0 : # Running as root
21
+ home_directory = os .path .expanduser (f"~{ os .environ .get ('SUDO_USER' )} " )
22
+ else :
23
+ home_directory = os .path .expanduser ("~" )
24
+ return f"{ home_directory } /Library/Messages/chat.db"
25
+ except :
18
26
home_directory = os .path .expanduser ("~" )
19
- return f"{ home_directory } /Library/Messages/chat.db"
27
+ return f"{ home_directory } /Library/Messages/chat.db"
20
28
21
29
def send (self , to , message ):
30
+ if sys .platform .lower () != "darwin" :
31
+ print ("Only supported on Mac." )
32
+ return
22
33
message_escaped = message .replace ('"' , '\\ "' ).replace ("\\ " , "\\ \\ " )
23
34
script = f"""
24
35
tell application "Messages"
@@ -30,6 +41,9 @@ def send(self, to, message):
30
41
return "Message sent successfully"
31
42
32
43
def get (self , contact = None , limit = 10 , substring = None ):
44
+ if sys .platform .lower () != "darwin" :
45
+ print ("Only supported on Mac." )
46
+ return
33
47
if not self .can_access_database ():
34
48
self .prompt_full_disk_access ()
35
49
0 commit comments