File size: 1,958 Bytes
5eabb89
 
 
 
 
 
 
 
 
 
 
 
 
31ceb6e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5eabb89
 
31ceb6e
c7367ef
31ceb6e
 
c7367ef
5eabb89
 
 
b576ae9
5eabb89
 
 
 
c7367ef
5eabb89
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import pusher
import json

# تهيئة Pusher مرة واحدة
pusher_client = pusher.Pusher(
    app_id='1853840',
    key= 'a1a5cbeadb52b107ea69' ,
    secret='29b058c83b90d893cfbb',
    cluster='eu',
    ssl=True
)

# # الدالة التي تستقبل الرسالة وترسلها إلى Pusher
# def predict(message_json):
#     # تحويل المدخلات إلى JSON
#     try:
#         message = json.loads(message_json)
        
#         # استخدام Pusher لإرسال الرسالة
#         pusher_client.trigger(f'conversation-{message["conversation_id"]}', 'new-message', { 
#             'message': message
#         })
        
#         return "تم إرسال الرسالة بنجاح إلى Pusher!"
#     except Exception as e:
#         return f"{message_json}"


def predict(message_json):
    try:
        # استخراج الرسالة كـ string من القائمة
        message_str = message_json.decode('utf-8')  # الحصول على العنصر الأول من القائمة
        
        # تحويل الـ string إلى كائن JSON
        message = json.loads(message_str[0])  # استبدال ' بـ " لجعل JSON صالحًا
        
        # استخدام Pusher لإرسال الرسالة
        pusher_client.trigger(f'conversation-{message["conversation_id"]}', 'new-message', { 
            'message': message
        })
        
        return "تم إرسال الرسالة بنجاح إلى Pusher!"
    except Exception as e:
        return f"{message_str} \n {message}"
# إعداد واجهة Gradio
iface = gr.Interface(
    fn=predict,
    inputs=gr.Textbox(lines=10, placeholder="أدخل رسالة JSON هنا...", label="Message JSON"), 
    outputs="text",  
    title="Real-time Message Sender",
    description="واجهة لاستقبال رسالة JSON وإرسالها عبر Pusher"
)

# تشغيل الواجهة
iface.launch(share=True)