-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOfflineMessaging.py
More file actions
75 lines (60 loc) · 2.41 KB
/
OfflineMessaging.py
File metadata and controls
75 lines (60 loc) · 2.41 KB
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
""" OfflineMessaging.py
COMPSYS302 - Software Design - Python Project
Author: Savi Mohan (smoh944@auckland.ac.nz)
Last Edited: 11/06/2017
This program uses the CherryPy web server (from www.cherrypy.org).
This file contains offline messaging functions called by MainFile.py
"""
import cherrypy
import hashlib
import urllib
import urllib2
import sqlite3
import json
import time
import os #used to figure out what operating system this is running on
import webbrowser
import socket
import thread
import base64
import markdown
def sendOfflineMessage(data,username,hashedPassword):
"""This function sends a message that is meant for an offline user, to every currently online user """
try:
print 'Sending Message Offline'
onlineUsersRequest = urllib2.Request('http://cs302.pythonanywhere.com/getList?username='+username+'&password='+hashedPassword+'&enc=0&json=1')
onlineUsersResponse = urllib2.urlopen(onlineUsersRequest,timeout=5)
onlineUsersRead = onlineUsersResponse.read()
onlineUsersData = json.loads(onlineUsersRead) #get online user data
for value in onlineUsersData.itervalues(): #send message to all online users
try:
ip = value['ip']
port = value['port']
request = urllib2.Request('http://'+ ip + ':' + port + '/receiveMessage' , data, {'Content-Type':'application/json'})
response = urllib2.urlopen(request,timeout=2).read()
except:
pass
print 'Offline Message sent successfully'
except:
pass
thread.exit()
def sendOfflineFile(data,username,hashedPassword):
"""This function sends a file that is meant for an offline user, to every currently online user """
try:
print 'Sending File Offline'
onlineUsersRequest = urllib2.Request('http://cs302.pythonanywhere.com/getList?username='+username+'&password='+hashedPassword+'&enc=0&json=1')
onlineUsersResponse = urllib2.urlopen(onlineUsersRequest,timeout=5)
onlineUsersRead = onlineUsersResponse.read()
onlineUsersData = json.loads(onlineUsersRead)
for value in onlineUsersData.itervalues(): #send file to all online users
try:
ip = value['ip']
port = value['port']
request = urllib2.Request('http://'+ ip + ':' + port + '/receiveFile' , data, {'Content-Type':'application/json'})
response = urllib2.urlopen(request,timeout=2).read()
except:
pass
print 'Offline File sent successfully'
except:
pass
thread.exit()