Subversion Repositories instagram

[/] [modules/] [ig/] [ezigfunctioncollection.php] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ffruehstueck
<?php
2
 
3
class eZIGFunctionCollection
4
{
5
    function eZIGFunctionCollection( $accessToken = false )
6
    {
7
                $IGIni = eZINI::instance( 'instagram.ini' );
8
 
9
                $this->config = array(
10
                'client_id' => $IGIni->variable( 'instagram', 'ClientId' ),
11
                'client_secret' => $IGIni->variable( 'instagram', 'ClientSecret' ),
12
                'grant_type' => 'authorization_code',
13
                'redirect_uri' => $IGIni->variable( 'instagram', 'RedirectURI' )
14
            );
15
            if( $accessToken == false )
16
            {
17
                        $tokenArray = eZIG::fetchAll( );
18
                        if( count( $tokenArray ) > 0 )
19
                        {
20
                                $this->accessToken = $tokenArray[0]->attribute('accessToken');
21
                        }
22
            }
23
            else
24
                $this->accessToken = $accessToken;
25
 
26
                $instagram = new Instagram($this->config);
27
                $instagram->setAccessToken( '2251420.e284bb1.beed6dbf617f47b888df4a4943dec32a' );
28
 
29
                $this->ig = $instagram;
30
        }
31
 
32
        static function fetchUser( $userID = null )
33
        {
34
                $return = false;
35
                if( $userID != null )
36
                {
37
                        $igFunctions = new eZIGFunctionCollection();
38
                        $userInfo = json_decode( $igFunctions->ig->getUser( $userID ) );
39
                        $return = array( 'counts_media' => $userInfo->data->counts->media, 'counts_followed_by' => $userInfo->data->counts->followed_by, 'counts_follows' => $userInfo->data->counts->follows);
40
                }
41
 
42
                return array( 'result' => $return );
43
        }      
44
 
45
        static function fetchAllImages( $userID = null )
46
        {
47
                $return = false;
48
                if( $userID == null )
49
                {
50
                        $tmpArray = eZIG::fetchAll( false );
51
                        foreach( $tmpArray as $item )
52
                        {
53
                                $userArray[ $item['ig_id'] ] = $item['accessToken'];
54
                        }
55
                }
56
                else
57
                {
58
                        $userArray = array( $userID );
59
                }
60
 
61
 
62
                if( count( $userArray )  )
63
                {
64
                        $db = eZDB::instance();
65
                        foreach( $userArray as $userID => $accessToken )
66
                        {
67
                                $igFunctions = new eZIGFunctionCollection( $accessToken );
68
 
69
 
70
                                $ts = time();
71
                                $i=0;
72
 
73
                                echo "\n\nImporting images for: " .$userID."\n";
74
                                $db->query( 'update ezig_photos set created_time='.time().' where user_id=' .$userID );
75
 
76
                                while( true )
77
                                {
78
                                        // get the latest entry in our db for this user and fetch the next entries from ig
79
                                        $res = $db->arrayQuery( 'SELECT min(created_time) as ts FROM ezig_photos where user_id=' .$userID );
80
 
81
                                        // if the user hasn't been imported yet, we start with ts=0
82
                                        $ts = ( $res[0]['ts'] > 0 ) ? ($res[0]['ts']-1) : 0;
83
                                        $i++;
84
                                        $images = $igFunctions->ig->getUserRecent( $userID, '', '', $ts  );
85
 
86
                                        $res = json_decode($images, true);
87
 
88
 
89
                                        if( count( $res['data'] ) == 0 )
90
                                                break;
91
                                        else
92
                                        {
93
                                                foreach ($res['data'] as $data)
94
                                            {
95
                                                        $igPhoto = eZIGPhotos::fetch( $data['id'] );
96
                                                        if( !is_object( $igPhoto ) )
97
                                                        {
98
                                                                $igPhoto = new eZIGPhotos();
99
                                                        }
100
                                                        $igPhoto->setAttribute('created_time', $data['created_time'] );
101
                                                        $igPhoto->setAttribute('link', $data['link'] );
102
                                                        $igPhoto->setAttribute('likes_count', $data['likes']['count'] );
103
                                                        $igPhoto->setAttribute('images', serialize( $data['images'] ) );
104
                                                        $igPhoto->setAttribute('id', $data['id'] );
105
                                                        $igPhoto->setAttribute('caption', $data['caption']['text'] );
106
 
107
                                                        $igPhoto->setAttribute('tags',  ( count( $data['tags'] ) ? " #".implode( " #", $data['tags'] ) : "" ) );
108
                                                        $igPhoto->setAttribute('user_id', $data['user']['id'] );
109
                                                        $igPhoto->store();
110
 
111
                                                        // echo $data['id'] ."\n";
112
                                            }
113
                                        }
114
                                        // return;
115
                                }
116
                        }
117
                        $return = array( );
118
                }
119
 
120
                return array( 'result' => $return );
121
        }      
122
 
123
 
124
        static function fetchAllLocalPhotosByUser( $userID = null, $offset = 0, $limit = 10, $asObject = true )
125
        {
126
                $return = false;
127
                if( $userID != null )
128
                {
129
                        $count = eZIGPhotos::fetchCountByUser( $userID );
130
                        echo $count;
131
 
132
                        $return = eZIGPhotos::fetchAllByUser( $userID, $offset, $limit, $asObject );
133
                }
134
 
135
                return array( 'result' => $return );
136
        }      
137
 
138
        static function fetchCountPhotosByUser( $userID = null )
139
        {
140
                $return = false;
141
                if( $userID != null )
142
                {
143
                        $return = eZIGPhotos::fetchCountByUser( $userID );
144
                }
145
 
146
                return array( 'result' => $return );
147
        }      
148
 
149
 
150
 
151
 
152
        protected $config;
153
        protected $accessToken;
154
        protected $ig;
155
}
156
 
157
?>