"Stores individual Twitter posts.", 'fields' => array( 'twitter_id' => array( 'description' => "Unique identifier for each {twitter} post.", 'type' => 'numeric', 'unsigned' => TRUE, 'precision' => 20, 'scale' => 0, 'not null' => TRUE, 'default' => 0, ), 'screen_name' => array( 'description' => "Screen Name of the {twitter_account} user.", 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', ), 'created_at' => array( 'description' => "Date and time the {twitter} post was created.", 'type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => '', ), 'created_time' => array( 'description' => "A duplicate of {twitter}.created_at in UNIX timestamp format.", 'type' => 'int', 'not null' => TRUE, ), 'text' => array( 'description' => "The text of the {twitter} post.", 'type' => 'varchar', 'length' => 255, 'not null' => FALSE, ), 'source' => array( 'description' => "The application that created the {twitter} post.", 'type' => 'varchar', 'length' => 255, 'not null' => FALSE, ), 'in_reply_to_status_id' => array( 'description' => "Unique identifier of a status this {twitter} post was replying to.", 'type' => 'numeric', 'unsigned' => TRUE, 'precision' => 20, 'scale' => 0, 'not null' => FALSE, ), 'in_reply_to_user_id' => array( 'description' => "Unique identifier for the {twitter_account} this post was replying to.", 'type' => 'numeric', 'unsigned' => TRUE, 'precision' => 20, 'scale' => 0, 'not null' => FALSE, ), 'in_reply_to_screen_name' => array( 'description' => "Screen name of the {twitter} user this post was replying to.", 'type' => 'varchar', 'length' => 255, 'not null' => FALSE, ), 'truncated' => array( 'description' => "Boolean flag indicating whether the {twitter} status was cut off to fit in the 140 character limit.", 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, ), ), 'indexes' => array('screen_name' => array('screen_name')), 'primary key' => array('twitter_id'), ); $schema['twitter_account'] = array( 'description' => "Stores information on specific Twitter user accounts.", 'fields' => array( 'twitter_uid' => array( 'description' => "The unique identifier of the {twitter_account}.", 'type' => 'numeric', 'unsigned' => TRUE, 'precision' => 20, 'scale' => 0, 'not null' => TRUE, 'default' => 0, ), 'uid' => array( 'description' => "The {users}.uid of the owner of this account", 'type' => 'int', 'unsigned' => TRUE, 'size' => 'big', 'not null' => TRUE, ), 'host' => array( 'description' => 'The host for this account can be a laconi.ca instance', 'type' => 'varchar', 'length' => 255, ), 'screen_name' => array( 'description' => "The unique login name of the {twitter_account} user.", 'type' => 'varchar', 'length' => 255, ), 'password' => array( 'description' => "The password for the Twitter account.", 'type' => 'varchar', 'length' => 64, ), 'oauth_token' => array( 'description' => 'The token_key for oauth-based access.', 'type' => 'varchar', 'length' => 64, ), 'oauth_token_secret' => array( 'description' => 'The token_secret for oauth-based access.', 'type' => 'varchar', 'length' => 64, ), 'name' => array( 'description' => "The full name of the {twitter_account} user.", 'type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => '', ), 'description' => array( 'description' => "The description/biography associated with the {twitter_account}.", 'type' => 'varchar', 'length' => 255, ), 'location' => array( 'description' => "The location of the {twitter_account}'s owner.", 'type' => 'varchar', 'length' => 255, ), 'followers_count' => array( 'description' => "The number of users following this {twitter_account}.", 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), 'friends_count' => array( 'description' => "The number of users this {twitter_account} is following.", 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), 'statuses_count' => array( 'description' => "The total number of status updates performed by a user, excluding direct messages sent.", 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), 'favourites_count' => array( 'description' => "The number of statuses a user has marked as favorite.", 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), 'url' => array( 'description' => "The url of the {twitter_account}'s home page.", 'type' => 'varchar', 'length' => 255, ), 'profile_image_url' => array( 'description' => "The url of the {twitter_account}'s profile image.", 'type' => 'varchar', 'length' => 255, ), 'protected' => array( 'description' => "Boolean flag indicating whether the {twitter_account}'s posts are publicly accessible.", 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, ), 'profile_background_color' => array( 'description' => "hex RGB value for a user's background color", 'type' => 'varchar', 'length' => 6, 'not null' => TRUE, 'default' => '', ), 'profile_text_color' => array( 'description' => "hex RGB value for a user's text color", 'type' => 'varchar', 'length' => 6, 'not null' => TRUE, 'default' => '', ), 'profile_link_color' => array( 'description' => "hex RGB value for a user's link color", 'type' => 'varchar', 'length' => 6, 'not null' => TRUE, 'default' => '', ), 'profile_sidebar_fill_color' => array( 'description' => "hex RGB value for a user's sidebar color", 'type' => 'varchar', 'length' => 6, 'not null' => TRUE, 'default' => '', ), 'profile_sidebar_border_color' => array( 'description' => "hex RGB value for a user's border color", 'type' => 'varchar', 'length' => 6, 'not null' => TRUE, 'default' => '', ), 'profile_background_image_url' => array( 'description' => "The url of the {twitter_account}'s profile image.", 'type' => 'varchar', 'length' => 255, ), 'profile_background_tile' => array( 'description' => "Boolean indicating if a user's background is tiled.", 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 1, ), 'verified' => array( 'description' => "Indicates if a user is verified.", 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 1, ), 'created_at' => array( 'description' => "Date and time the {twitter_account} was created.", 'type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => '', ), 'created_time' => array( 'description' => "A duplicate of {twitter_account}.created_at in UNIX timestamp format.", 'type' => 'int', 'not null' => TRUE, ), 'utc_offset' => array( 'description' => "A duplicate of {twitter_account}.created_at in UNIX timestamp format.", 'type' => 'int', 'not null' => TRUE, ), 'import' => array( 'description' => "Boolean flag indicating whether the {twitter_user}'s posts should be pulled in by the site.", 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 1, ), 'last_refresh' => array( 'description' => "A UNIX timestamp marking the date Twitter statuses were last fetched on.", 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), 'is_global' => array( 'description' => "Boolean flag indicating if this account is available for global use", 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, ), ), 'indexes' => array('screen_name' => array('screen_name')), 'primary key' => array('twitter_uid'), ); return $schema; } /** * Implements hook_install(). */ function twitter_install() { // Set the weight to 3, making it heavier than Pathauto. db_update('system') ->fields(array( 'weight' => 3, )) ->condition('type', 'module') ->condition('name', 'twitter') ->execute(); } /** * Implements hook_uninstall(). */ function twitter_uninstall() { // Remove variables variable_del('twitter_import'); variable_del('twitter_expire'); variable_del('twitter_consumer_key'); variable_del('twitter_consumer_secret'); variable_del('twitter_post_types'); variable_del('twitter_host'); variable_del('twitter_post_default_format'); variable_del('twitter_signin_button'); variable_del('twitter_signin_register'); } /** * Implements hook_update_last_removed(). */ function twitter_update_last_removed() { return 6005; }