root/trunk/robots/dispatch_message.bot.php

Revision 1, 4.4 KB (checked in by anonymous, 7 years ago)

initial import

Line 
1#!/usr/bin/php
2<?
3include ('../includes/includes.inc.php');
4include ('../includes/config/global.inc.php');
5
6$db =& DB::connect($dsn);
7if (DB::isError($db))
8                error_log($_SERVER['HTTP_HOST'].' | '.__FILE__.' | Connexion SQL impossible : '.$db->getMessage());
9
10$db->setFetchMode(DB_FETCHMODE_ASSOC);
11
12$messages_r = $db->query('SELECT id, id_mess, id_from, from_str, type, dest, subject, message, date FROM message WHERE box=? ORDER BY id_from', 'outbox');
13while($message = $messages_r->fetchRow())
14{
15    switch($message['dest'])
16    {
17    case 'one':
18        $message_values= array (
19            'dest'          => $message['dest'],
20            'id'            => $message['id'],
21            'subject'       => $message['subject'],
22            'message'       => $message['message'],
23            'date'          => $message['date'],
24            'id_from'       => $message['id_from'],
25            'from_str'      => $message['from_str'],
26            'type'          => 'message',
27            'box'           => 'inbox' );
28        $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT);
29
30        $message_values['box'] = 'send';
31        $message_values['flag'] = 'read';
32        $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT);
33
34        $db->query('DELETE FROM message WHERE id_mess=?', $message['id_mess']);
35
36        if(get_setting($message['id'], 'messages_sent_directly_to_me') == 'email')
37            auto_mail( $message['id_from'],
38                    $message['id'],
39                    $message['subject'],
40                    $message['message']
41                 );
42        break;
43
44    case 'friends':
45        $friends_id = split(',', $db->getOne("SELECT friends_id FROM cache_user WHERE id='".$message['id_from']."'"));
46//        $friends_id = $db->query('SELECT relation.id_friend FROM relation LEFT JOIN user ON relation.id_friend=user.id WHERE relation.id=?', $message['id_from']);
47        foreach($friends_id as $friend_id)
48        {
49            $message_values= array (
50                'dest'          => $message['dest'],
51                'id'            => $friend_id,
52                'subject'       => $message['subject'],
53                'message'       => $message['message'],
54                'date'          => $message['date'],
55                'id_from'       => $message['id_from'],
56                'from_str'      => $message['from_str'],
57                'type'          => 'message',
58                'box'           => 'inbox' );
59
60            $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT);
61
62            if(get_setting($message['id'], 'messages_sent_to_friends') == 'email')
63                auto_mail( $message['id_from'],
64                        $friend_id,
65                        $message['subject'],
66                        $message['message']
67                     );
68
69        }
70
71        unset($message_values['id']);
72        $message_values['box'] = 'send';
73                $message_values['flag'] = 'read';
74        $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT);
75
76        $db->query('DELETE FROM message WHERE id_mess=?', $message['id_mess']);
77
78        break;
79
80    case 'friends_of_friends':
81        $friends_list = $db->getOne("SELECT friends_id FROM cache_user WHERE id='".$message['id_from']."'");
82        $foaf_id = split(',', $friends_list);
83        $foaf_id[] = $message['id_from'];
84
85        foreach($foaf_id as $key=>$value)
86        {
87            $foaf_id2[$key] = "'$value'";
88        }
89        $foaf_id = implode(',',$foaf_id2);
90
91        $foaf_id = $db->getCol('SELECT DISTINCT relation.id_friend FROM relation LEFT JOIN user ON relation.id_friend = user.id WHERE relation.id IN ('.$foaf_id.') AND relation.id_friend <>?',0, $message['id_from']);
92
93        foreach($foaf_id as $friend_id)
94                {
95                        $message_values= array (
96                                'dest'          => $message['dest'],
97                                'id'            => $friend_id,
98                                'subject'       => $message['subject'],
99                                'message'       => $message['message'],
100                                'date'          => $message['date'],
101                                'id_from'       => $message['id_from'],
102                'from_str'      => $message['from_str'],
103                'type'          => 'message',
104                'box'           => 'inbox' );
105            $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT);
106
107            if(get_setting($message['id'], 'messages_sent_to_friends_of_friends') == 'email')
108                auto_mail( $message['id_from'],
109                        $friend_id,
110                        $message['subject'],
111                        $message['message']
112                     );
113
114
115                }
116
117        unset($message_values['id']);
118                $message_values['box'] = 'send';
119                $message_values['flag'] = 'read';
120                $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT);
121
122                $db->query('DELETE FROM message WHERE id_mess=?', $message['id_mess']);
123
124        break;
125    }
126}
127
128$db->disconnect();
129?>
Note: See TracBrowser for help on using the browser.