/[drupal]/contributions/modules/twitter/twitter.inc
ViewVC logotype

Contents of /contributions/modules/twitter/twitter.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.10 - (show annotations) (download) (as text)
Thu Jun 11 03:01:02 2009 UTC (5 months, 2 weeks ago) by walkah
Branch: MAIN
CVS Tags: HEAD
Changes since 1.9: +63 -453 lines
File MIME type: text/x-php
sync head with DRUPAL-6--3
1 <?php
2 // $Id: twitter.inc,v 1.9.2.1 2009/05/28 06:45:22 walkah Exp $
3
4 /**
5 * Twitter API functions
6 */
7
8 /**
9 * Connect to the API using the 'proper' version (Oauth vs. standard)
10 */
11 function twitter_connect($account) {
12 module_load_include('lib.php', 'twitter');
13 $auth = $account->get_auth();
14 if (_twitter_use_oauth() && $auth['oauth_token'] && $auth['oauth_token_secret']) {
15 module_load_include('lib.php', 'oauth');
16 return new TwitterOAuth(variable_get('twitter_consumer_key', ''), variable_get('twitter_consumer_secret', ''), $auth['oauth_token'], $auth['oauth_token_secret']);
17 }
18 else if ($auth['password']) {
19 return new Twitter($account->screen_name, $auth['password']);
20 }
21 else {
22 return new Twitter;
23 }
24 }
25
26 /**
27 * Saves a TwitterUser object to {twitter_account}
28 */
29 function twitter_account_save($twitter_user, $save_auth = FALSE, $account = NULL) {
30 $values = (array)$twitter_user;
31 $values['twitter_uid'] = $twitter_user->id;
32
33 if ($save_auth) {
34 $values += $twitter_user->get_auth();
35 if (empty($account)) {
36 global $user;
37 $account = $user;
38 }
39 $values['uid'] = $account->uid;
40 }
41
42 if (db_result(db_query("SELECT 1 FROM {twitter_account} WHERE twitter_uid = %d", $twitter_user->id))) {
43 drupal_write_record('twitter_account', $values, array('twitter_uid'));
44 }
45 else {
46 drupal_write_record('twitter_account', $values);
47 }
48 }
49
50 function twitter_account_load($id) {
51 module_load_include('lib.php', 'twitter');
52
53 $values = db_fetch_array(db_query("SELECT * FROM {twitter_account} WHERE twitter_uid = %d", $id));
54 $values['id'] = $values['twitter_uid'];
55 $account = new TwitterUser($values);
56 $account->set_auth($values);
57
58 return $account;
59 }
60
61 /**
62 * Saves a TwitterStatus object to {twitter}
63 */
64 function twitter_status_save($status) {
65 $status->twitter_id = $status->id;
66 $status->screen_name = $status->user->screen_name;
67 $status->created_time = strtotime($status->created_at);
68
69 if (db_result(db_query("SELECT 1 FROM {twitter} WHERE twitter_id = %d", $status->id))) {
70 drupal_write_record('twitter', $status, array('twitter_id'));
71 }
72 else {
73 drupal_write_record('twitter', $status);
74 }
75
76 }
77
78 function twitter_fetch_user_timeline($id) {
79 $account = twitter_account_load($id);
80
81 $since = db_result(db_query("SELECT MAX(twitter_id) FROM {twitter} WHERE screen_name = '%s'", $account->screen_name));
82
83 $twitter = twitter_connect($account);
84
85 $params = array();
86 if ($since) {
87 $params['since_id'] = $since;
88 }
89
90 $statuses = $twitter->user_timeline($account->id, $params, $account->protected);
91 foreach ($statuses as $status) {
92 twitter_status_save($status);
93 }
94
95 if (count($statuses) > 0) {
96 twitter_account_save($statuses[0]->user);
97 }
98 db_query("UPDATE {twitter_account} SET last_refresh = %d WHERE twitter_uid=%d", time(), $account->id);
99 }
100
101 /**
102 * User/account relationship code
103 */
104
105 function twitter_get_user_accounts($uid, $full_access = FALSE) {
106 $drupal_user = user_load($uid);
107 return module_invoke_all('twitter_accounts', $drupal_user, $full_access);
108 }
109
110 function twitter_user_delete($uid, $screen_name = NULL) {
111 $sql = "DELETE FROM {twitter_account} WHERE uid = %d";
112 $args = array($uid);
113 if (!empty($screen_name)) {
114 $sql .= " AND screen_name = '%s'";
115 $args[] = $screen_name;
116 }
117 db_query($sql, $args);
118 }
119

  ViewVC Help
Powered by ViewVC 1.1.2