* Remove six for PY2 compatability since our dependencies are not, PY2 is legacy. * Removed usages of utils from future/past libraries since they are deprecated. This includes 'from __future__ ...' and 'from past...' statements. * Removed compatibility imports for PY2, switched from six imports to standard library imports. * Removed utils code blocks that handle operations depending on PY2/3 versions. * Removed 'from __future__ ...' lines from templates/code generators * Used PY3 syntaxes in place of PY2 compatible blocks. eg: metaclass
42 lines
No EOL
1.2 KiB
Python
42 lines
No EOL
1.2 KiB
Python
|
|
import frappe
|
|
from frappe.chat.util import filter_dict, safe_json_loads
|
|
|
|
from frappe.sessions import get_geo_ip_country
|
|
|
|
@frappe.whitelist(allow_guest = True)
|
|
def settings(fields = None):
|
|
fields = safe_json_loads(fields)
|
|
|
|
dsettings = frappe.get_single('Website Settings')
|
|
response = dict(
|
|
socketio = dict(
|
|
port = frappe.conf.socketio_port
|
|
),
|
|
enable = bool(dsettings.chat_enable),
|
|
enable_from = dsettings.chat_enable_from,
|
|
enable_to = dsettings.chat_enable_to,
|
|
room_name = dsettings.chat_room_name,
|
|
welcome_message = dsettings.chat_welcome_message,
|
|
operators = [
|
|
duser.user for duser in dsettings.chat_operators
|
|
]
|
|
)
|
|
|
|
if fields:
|
|
response = filter_dict(response, fields)
|
|
|
|
return response
|
|
|
|
@frappe.whitelist(allow_guest = True)
|
|
def token():
|
|
dtoken = frappe.new_doc('Chat Token')
|
|
|
|
dtoken.token = frappe.generate_hash()
|
|
dtoken.ip_address = frappe.local.request_ip
|
|
country = get_geo_ip_country(dtoken.ip_address)
|
|
if country:
|
|
dtoken.country = country['iso_code']
|
|
dtoken.save(ignore_permissions = True)
|
|
|
|
return dtoken.token |