summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
Diffstat (limited to 'db')
-rw-r--r--db/carrier.sql61
-rw-r--r--db/foreign_services.sql7
-rw-r--r--db/laconica.sql19
-rw-r--r--db/laconica_pg.sql59
-rw-r--r--db/notice_source.sql46
-rw-r--r--db/sms_carrier.sql63
6 files changed, 154 insertions, 101 deletions
diff --git a/db/carrier.sql b/db/carrier.sql
deleted file mode 100644
index 932f7c8bb..000000000
--- a/db/carrier.sql
+++ /dev/null
@@ -1,61 +0,0 @@
-insert into sms_carrier
- (name, email_pattern, created)
-values
- ('3 River Wireless', '%s@sms.3rivers.net', now()),
- ('7-11 Speakout', '%s@cingularme.com', now()),
- ('Airtel (Karnataka, India)', '%s@airtelkk.com', now()),
- ('Alaska Communications Systems', '%s@msg.acsalaska.com', now()),
- ('Alltel Wireless', '%s@message.alltel.com', now()),
- ('AT&T Wireless', '%s@txt.att.net', now()),
- ('Bell Mobility (Canada)', '%s@txt.bell.ca', now()),
- ('Boost Mobile', '%s@myboostmobile.com', now()),
- ('Cellular One (Dobson)', '%s@mobile.celloneusa.com', now()),
- ('Cincinnati Bell Wireless', '%s@gocbw.com', now()),
- ('Cingular (Postpaid)', '%s@cingularme.com', now()),
- ('Centennial Wireless', '%s@cwemail.com', now()),
- ('Cingular (GoPhone prepaid)', '%s@cingularme.com', now()),
- ('Claro (Nicaragua)', '%s@ideasclaro-ca.com', now()),
- ('Comcel', '%s@comcel.com.co', now()),
- ('Cricket', '%s@sms.mycricket.com', now()),
- ('CTI', '%s@sms.ctimovil.com.ar', now()),
- ('Emtel (Mauritius)', '%s@emtelworld.net', now()),
- ('Fido (Canada)', '%s@fido.ca', now()),
- ('General Communications Inc.', '%s@msg.gci.net', now()),
- ('Globalstar', '%s@msg.globalstarusa.com', now()),
- ('Helio', '%s@myhelio.com', now()),
- ('Illinois Valley Cellular', '%s@ivctext.com', now()),
- ('i wireless', '%s.iws@iwspcs.net', now()),
- ('Meteor (Ireland)', '%s@sms.mymeteor.ie', now()),
- ('Mero Mobile (Nepal)', '%s@sms.spicenepal.com', now()),
- ('MetroPCS', '%s@mymetropcs.com', now()),
- ('Movicom', '%s@movimensaje.com.ar', now()),
- ('Mobitel (Sri Lanka)', '%s@sms.mobitel.lk', now()),
- ('Movistar (Colombia)', '%s@movistar.com.co', now()),
- ('MTN (South Africa)', '%s@sms.co.za', now()),
- ('MTS (Canada)', '%s@text.mtsmobility.com', now()),
- ('Nextel (Argentina)', '%s@nextel.net.ar', now()),
- ('Orange (Poland)', '%s@orange.pl', now()),
- ('Orange (UK)', '%s@orange.net', now()),
- ('Personal (Argentina)', '%s@personal-net.com.ar', now()),
- ('Plus GSM (Poland)', '%s@text.plusgsm.pl', now()),
- ('President''s Choice (Canada)', '%s@txt.bell.ca', now()),
- ('Qwest', '%s@qwestmp.com', now()),
- ('Rogers (Canada)', '%s@pcs.rogers.com', now()),
- ('Sasktel (Canada)', '%s@sms.sasktel.com', now()),
- ('Setar Mobile email (Aruba)', '%s@mas.aw', now()),
- ('Solo Mobile', '%s@txt.bell.ca', now()),
- ('Sprint (PCS)', '%s@messaging.sprintpcs.com', now()),
- ('Sprint (Nextel)', '%s@page.nextel.com', now()),
- ('Suncom', '%s@tms.suncom.com', now()),
- ('T-Mobile', '%s@tmomail.net', now()),
- ('T-Mobile (Austria)', '%s@sms.t-mobile.at', now()),
- ('Telus Mobility (Canada)', '%s@msg.telus.com', now()),
- ('Thumb Cellular', '%s@sms.thumbcellular.com', now()),
- ('Tigo (Formerly Ola)', '%s@sms.tigo.com.co', now()),
- ('Unicel', '%s@utext.com', now()),
- ('US Cellular', '%s@email.uscc.net', now()),
- ('Verizon', '%s@vtext.com', now()),
- ('Virgin Mobile (Canada)', '%s@vmobile.ca', now()),
- ('Virgin Mobile (USA)', '%s@vmobl.com', now()),
- ('Vodafone NZ (txt ''R'' to 901 to enable first)', '%s@sms.vodafone.net.nz', now()),
- ('YCC', '%s@sms.ycc.ru', now());
diff --git a/db/foreign_services.sql b/db/foreign_services.sql
index 512d42513..557ede024 100644
--- a/db/foreign_services.sql
+++ b/db/foreign_services.sql
@@ -1,8 +1,5 @@
insert into foreign_service
(id, name, description, created)
values
- ('1','Twitter', 'Twitter Micro-blogging service', now());
-insert into foreign_service
- (id, name, description, created)
-values
- ('2','Facebook', 'Facebook', now());
+ ('1','Twitter', 'Twitter Micro-blogging service', now()),
+ ('2','Facebook', 'Facebook', now());
diff --git a/db/laconica.sql b/db/laconica.sql
index 012270b51..c7c1826d2 100644
--- a/db/laconica.sql
+++ b/db/laconica.sql
@@ -31,7 +31,7 @@ create table avatar (
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
create table sms_carrier (
- id integer auto_increment primary key comment 'primary key for SMS carrier',
+ id integer primary key comment 'primary key for SMS carrier',
name varchar(64) unique key comment 'name of the carrier',
email_pattern varchar(255) not null comment 'sprintf pattern for making an email address from a phone number',
created datetime not null comment 'date this record was created',
@@ -50,6 +50,7 @@ create table user (
emailnotifyfav tinyint default 1 comment 'Notify by email of favorites',
emailnotifynudge tinyint default 1 comment 'Notify by email of nudges',
emailnotifymsg tinyint default 1 comment 'Notify by email of direct messages',
+ emailnotifyattn tinyint default 1 comment 'Notify by email of @-replies',
emailmicroid tinyint default 1 comment 'whether to publish email microid',
language varchar(50) comment 'preferred language',
timezone varchar(50) comment 'timezone',
@@ -114,8 +115,10 @@ create table notice (
reply_to integer comment 'notice replied to (usually a guess)' references notice (id),
is_local tinyint default 0 comment 'notice was generated by a user',
source varchar(32) comment 'source of comment, like "web", "im", or "clientname"',
+ conversation integer comment 'id of root notice in this conversation' references notice (id),
index notice_profile_id_idx (profile_id),
+ index notice_conversation_idx (conversation),
index notice_created_idx (created),
FULLTEXT(content)
) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;
@@ -170,7 +173,7 @@ create table token (
tok char(32) not null comment 'identifying value',
secret char(32) not null comment 'secret value',
type tinyint not null default 0 comment 'request or access',
- state tinyint default 0 comment 'for requests; 0 = initial, 1 = authorized, 2 = used',
+ state tinyint default 0 comment 'for requests, 0 = initial, 1 = authorized, 2 = used',
created datetime not null comment 'date this record was created',
modified timestamp comment 'date this record was modified',
@@ -258,7 +261,8 @@ create table notice_tag (
created datetime not null comment 'date this record was created',
constraint primary key (tag, notice_id),
- index notice_tag_created_idx (created)
+ index notice_tag_created_idx (created),
+ index notice_tag_notice_id_idx (notice_id)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
/* Synching with foreign services */
@@ -342,7 +346,7 @@ create table notice_inbox (
user_id integer not null comment 'user receiving the message' references user (id),
notice_id integer not null comment 'notice received' references notice (id),
created datetime not null comment 'date the notice was created',
- source tinyint default 1 comment 'reason it is in the inbox; 1=subscription',
+ source tinyint default 1 comment 'reason it is in the inbox, 1=subscription',
constraint primary key (user_id, notice_id),
index notice_inbox_notice_id_idx (notice_id)
@@ -356,7 +360,8 @@ create table profile_tag (
constraint primary key (tagger, tagged, tag),
index profile_tag_modified_idx (modified),
- index profile_tag_tagger_tag_idx (tagger, tag)
+ index profile_tag_tagger_tag_idx (tagger, tag),
+ index profile_tag_tagged_idx (tagged)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
create table profile_block (
@@ -400,7 +405,9 @@ create table group_member (
created datetime not null comment 'date this record was created',
modified timestamp comment 'date this record was modified',
- constraint primary key (group_id, profile_id)
+ constraint primary key (group_id, profile_id),
+ index group_member_profile_id_idx (profile_id),
+ index group_member_created_idx (created)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
diff --git a/db/laconica_pg.sql b/db/laconica_pg.sql
index 9882d091a..2d83f784a 100644
--- a/db/laconica_pg.sql
+++ b/db/laconica_pg.sql
@@ -8,7 +8,7 @@ create table profile (
homepage varchar(255) /* comment 'identifying URL' */,
bio varchar(140) /* comment 'descriptive biography' */,
location varchar(255) /* comment 'physical location' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
textsearch tsvector
@@ -23,7 +23,7 @@ create table avatar (
mediatype varchar(32) not null /* comment 'file type' */,
filename varchar(255) null /* comment 'local filename, if local' */,
url varchar(255) unique /* comment 'avatar location' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
primary key(profile_id, width, height)
@@ -34,7 +34,7 @@ create table sms_carrier (
id serial primary key /* comment 'primary key for SMS carrier' */,
name varchar(64) unique /* comment 'name of the carrier' */,
email_pattern varchar(255) not null /* comment 'sprintf pattern for making an email address from a phone number' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified ' */
);
@@ -50,6 +50,7 @@ create table "user" (
emailnotifyfav integer default 1 /* comment 'Notify by email of favorites' */,
emailnotifynudge integer default 1 /* comment 'Notify by email of nudges' */,
emailnotifymsg integer default 1 /* comment 'Notify by email of direct messages' */,
+ emailnotifyattn integer default 1 /* command 'Notify by email of @-replies' */,
emailmicroid integer default 1 /* comment 'whether to publish email microid' */,
language varchar(50) /* comment 'preferred language' */,
timezone varchar(50) /* comment 'timezone' */,
@@ -68,7 +69,7 @@ create table "user" (
autosubscribe integer default 0 /* comment 'automatically subscribe to users who subscribe to us' */,
urlshorteningservice varchar(50) default 'ur1.ca' /* comment 'service to use for auto-shortening URLs' */,
inboxed integer default 0 /* comment 'has an inbox been created for this user?' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -81,7 +82,7 @@ create table remote_profile (
uri varchar(255) unique /* comment 'universally unique identifier, usually a tag URI' */,
postnoticeurl varchar(255) /* comment 'URL we use for posting notices' */,
updateprofileurl varchar(255) /* comment 'URL we use for updates to this profile' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -92,7 +93,7 @@ create table subscription (
sms integer default 1 /* comment 'deliver sms messages' */,
token varchar(255) /* comment 'authorization token' */,
secret varchar(255) /* comment 'token secret' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
primary key (subscriber, subscribed)
@@ -108,7 +109,7 @@ create table notice (
content varchar(140) /* comment 'update content' */,
rendered text /* comment 'HTML version of the content' */,
url varchar(255) /* comment 'URL of any attachment (image, video, bookmark, whatever)' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
reply_to integer /* comment 'notice replied to (usually a guess)' */ references notice (id) ,
is_local integer default 0 /* comment 'notice was generated by a user' */,
@@ -123,7 +124,7 @@ create table notice_source (
code varchar(32) primary key not null /* comment 'source code' */,
name varchar(255) not null /* comment 'name of the source' */,
url varchar(255) not null /* comment 'url to link to' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -131,7 +132,7 @@ create table reply (
notice_id integer not null /* comment 'notice that is the reply' */ references notice (id) ,
profile_id integer not null /* comment 'profile replied to' */ references profile (id) ,
- modified timestamp not null default 'now' /* comment 'date this record was modified' */,
+ modified timestamp /* comment 'date this record was modified' */,
replied_id integer /* comment 'notice replied to (not used, see notice.reply_to)' */,
primary key (notice_id, profile_id)
@@ -145,7 +146,7 @@ create table fave (
notice_id integer not null /* comment 'notice that is the favorite' */ references notice (id),
user_id integer not null /* comment 'user who likes this notice' */ references "user" (id) ,
- modified timestamp not null /* comment 'date this record was modified' */,
+ modified timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was modified' */,
primary key (notice_id, user_id)
);
@@ -159,7 +160,7 @@ create table consumer (
consumer_key varchar(255) primary key /* comment 'unique identifier, root URL' */,
seed char(32) not null /* comment 'seed for new tokens by this consumer' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -170,7 +171,7 @@ create table token (
type integer not null default 0 /* comment 'request or access' */,
state integer default 0 /* comment 'for requests; 0 = initial, 1 = authorized, 2 = used' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
primary key (consumer_key, tok)
@@ -180,9 +181,9 @@ create table nonce (
consumer_key varchar(255) not null /* comment 'unique identifier, root URL' */,
tok char(32) not null /* comment 'identifying value' */,
nonce char(32) not null /* comment 'nonce' */,
- ts timestamp not null /* comment 'timestamp sent' */,
+ ts integer not null /* comment 'timestamp sent' values are epoch, and only used internally */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
primary key (consumer_key, tok, nonce),
@@ -195,7 +196,7 @@ create table user_openid (
canonical varchar(255) primary key /* comment 'Canonical true URL' */,
display varchar(255) not null unique /* comment 'URL for viewing, may be different from canonical' */,
user_id integer not null /* comment 'user owning this URL' */ references "user" (id) ,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -241,7 +242,7 @@ create table queue_item (
notice_id integer not null /* comment 'notice queued' */ references notice (id) ,
transport varchar(8) not null /* comment 'queue for what? "email", "jabber", "sms", "irc", ...' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
claimed timestamp /* comment 'date this item was claimed' */,
primary key (notice_id, transport)
@@ -253,7 +254,7 @@ create index queue_item_created_idx on queue_item using btree(created);
create table notice_tag (
tag varchar( 64 ) not null /* comment 'hash tag associated with this notice' */,
notice_id integer not null /* comment 'notice tagged' */ references notice (id) ,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
primary key (tag, notice_id)
);
@@ -265,7 +266,7 @@ create table foreign_service (
id int not null primary key /* comment 'numeric key for service' */,
name varchar(32) not null unique /* comment 'name of the service' */,
description varchar(255) /* comment 'description' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -274,7 +275,7 @@ create table foreign_user (
service int not null /* comment 'foreign key to service' */ references foreign_service(id) ,
uri varchar(255) not null unique /* comment 'identifying URI' */,
nickname varchar(255) /* comment 'nickname on foreign service' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
primary key (id, service)
@@ -288,8 +289,8 @@ create table foreign_link (
noticesync int not null default 1 /* comment 'notice synchronisation, bit 1 = sync outgoing, bit 2 = sync incoming, bit 3 = filter local replies' */,
friendsync int not null default 2 /* comment 'friend synchronisation, bit 1 = sync outgoing, bit 2 = sync incoming */,
profilesync int not null default 1 /* comment 'profile synchronization, bit 1 = sync outgoing, bit 2 = sync incoming' */,
- created timestamp not null /* comment 'date this record was created' */,
- modified timestamp not null /* comment 'date this record was modified' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
+ modified timestamp /* comment 'date this record was modified' */,
primary key (user_id,foreign_id,service)
);
@@ -299,7 +300,7 @@ create table foreign_subscription (
service int not null /* comment 'service where relationship happens' */ references foreign_service(id) ,
subscriber int not null /* comment 'subscriber on foreign service' */ ,
subscribed int not null /* comment 'subscribed user' */ ,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
primary key (service, subscriber, subscribed)
);
@@ -311,7 +312,7 @@ create table invitation (
user_id int not null /* comment 'who sent the invitation' */ references "user" (id),
address varchar(255) not null /* comment 'invitation sent to' */,
address_type varchar(8) not null /* comment 'address type ("email", "jabber", "sms") '*/,
- created timestamp not null /* comment 'date this record was created' */
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */
);
create index invitation_address_idx on invitation using btree(address,address_type);
@@ -326,7 +327,7 @@ create table message (
content varchar(140) /* comment 'message content' */,
rendered text /* comment 'HTML version of the content' */,
url varchar(255) /* comment 'URL of any attachment (image, video, bookmark, whatever)' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
source varchar(32) /* comment 'source of comment, like "web", "im", or "clientname"' */
@@ -339,7 +340,7 @@ create table notice_inbox (
user_id integer not null /* comment 'user receiving the message' */ references "user" (id),
notice_id integer not null /* comment 'notice received' */ references notice (id),
- created timestamp not null /* comment 'date the notice was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date the notice was created' */,
source integer default 1 /* comment 'reason it is in the inbox; 1=subscription' */,
primary key (user_id, notice_id)
@@ -382,7 +383,7 @@ create table user_group (
stream_logo varchar(255) /* comment 'stream-sized logo' */,
mini_logo varchar(255) /* comment 'mini logo' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -394,7 +395,7 @@ create table group_member (
profile_id integer not null /* comment 'foreign key to profile table' */ references profile (id),
is_admin integer default 0 /* comment 'is this user an admin?' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
primary key (group_id, profile_id)
@@ -405,7 +406,7 @@ create table related_group (
group_id integer not null /* comment 'foreign key to user_group' */ references user_group (id) ,
related_group_id integer not null /* comment 'foreign key to user_group' */ references user_group (id),
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
primary key (group_id, related_group_id)
@@ -414,7 +415,7 @@ create table related_group (
create table group_inbox (
group_id integer not null /* comment 'group receiving the message' references user_group (id) */,
notice_id integer not null /* comment 'notice received' references notice (id) */,
- created timestamp not null /* comment 'date the notice was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date the notice was created' */,
primary key (group_id, notice_id)
);
diff --git a/db/notice_source.sql b/db/notice_source.sql
new file mode 100644
index 000000000..ea04862e0
--- /dev/null
+++ b/db/notice_source.sql
@@ -0,0 +1,46 @@
+INSERT INTO notice_source
+ (code, name, url, created)
+VALUES
+ ('Do','Gnome Do','http://do.davebsd.com/wiki/index.php?title=Microblog_Plugin', now()),
+ ('Facebook','Facebook','http://apps.facebook.com/identica/', now()),
+ ('Gwibber','Gwibber','http://launchpad.net/gwibber', now()),
+ ('HelloTxt','HelloTxt','http://hellotxt.com/', now()),
+ ('IdentiFox','IdentiFox','http://www.bitbucket.org/uncryptic/identifox/', now()),
+ ('LaTwit','LaTwit','http://latwit.mac65.com/', now()),
+ ('Nambu','Nambu','http://www.nambu.com/', now()),
+ ('Pikchur','Pikchur','http://www.pikchur.com/', now()),
+ ('Ping.fm','Ping.fm','http://ping.fm/', now()),
+ ('Twidge','Twidge','http://software.complete.org/twidge', now()),
+ ('Updating.Me','Updating.Me','http://updating.me/', now()),
+ ('betwittered','BeTwittered','http://www.32hours.com/betwitteredinfo/', now()),
+ ('bti','bti','http://gregkh.github.com/bti/', now()),
+ ('deskbar','Deskbar-Applet','http://www.gnome.org/projects/deskbar-applet/', now()),
+ ('identicatools','Laconica Tools','http://bitbucketlabs.net/laconica-tools/', now()),
+ ('identichat','identichat','http://identichat.prosody.im/', now()),
+ ('identitwitch','IdentiTwitch','http://richfish.org/identitwitch/', now()),
+ ('mbpidgin','mbpidgin','http://code.google.com/p/microblog-purple/', now()),
+ ('moconica','Moconica','http://moconica.com/', now()),
+ ('pocketwit','PockeTwit','http://code.google.com/p/pocketwit/', now()),
+ ('posty','Posty','http://spreadingfunkyness.com/posty/', now()),
+ ('royalewithcheese','Royale With Cheese','http://p.hellyeah.org/', now()),
+ ('rssdent','rssdent','http://github.com/zcopley/rssdent/tree/master', now()),
+ ('rygh.no','rygh.no','http://rygh.no/', now()),
+ ('ryghsms','ryghsms','http://sms.rygh.no/', now()),
+ ('smob','SMOB','http://smob.sioc-project.org/', now()),
+ ('spaz','Spaz','http://funkatron.com/spaz', now()),
+ ('tarpipe','tarpipe','http://tarpipe.com/', now()),
+ ('tjunar','Tjunar','http://nederflash.nl/boek/titels/tjunar-air', now()),
+ ('tr.im','tr.im','http://tr.im/', now()),
+ ('tweenky','Tweenky','http://beta.tweenky.com/', now()),
+ ('twhirl','Twhirl','http://www.twhirl.org/', now()),
+ ('twibble','twibble','http://www.twibble.de/', now()),
+ ('twidge','Twidge','http://software.complete.org/twidge', now()),
+ ('twidroid','twidroid','http://www.twidroid.com/', now()),
+ ('twittelator','Twittelator','http://www.stone.com/iPhone/Twittelator/', now()),
+ ('twitterfeed','twitterfeed','http://twitterfeed.com/', now()),
+ ('twitterphoto','TwitterPhoto','http://richfish.org/twitterphoto/', now()),
+ ('twitterpm','Net::Twitter','http://search.cpan.org/dist/Net-Twitter/', now()),
+ ('twittertools','Twitter Tools','http://wordpress.org/extend/plugins/twitter-tools/', now()),
+ ('twitux','Twitux','http://live.gnome.org/DanielMorales/Twitux', now()),
+ ('twitvim','TwitVim','http://vim.sourceforge.net/scripts/script.php?script_id=2204', now()),
+ ('urfastr','urfastr','http://urfastr.net/', now());
diff --git a/db/sms_carrier.sql b/db/sms_carrier.sql
new file mode 100644
index 000000000..6879f2089
--- /dev/null
+++ b/db/sms_carrier.sql
@@ -0,0 +1,63 @@
+INSERT INTO sms_carrier
+ (id, name, email_pattern, created)
+VALUES
+ (100056, '3 River Wireless', '%s@sms.3rivers.net', now()),
+ (100057, '7-11 Speakout', '%s@cingularme.com', now()),
+ (100058, 'Airtel (Karnataka, India)', '%s@airtelkk.com', now()),
+ (100059, 'Alaska Communications Systems', '%s@msg.acsalaska.com', now()),
+ (100060, 'Alltel Wireless', '%s@message.alltel.com', now()),
+ (100061, 'AT&T Wireless', '%s@txt.att.net', now()),
+ (100062, 'Bell Mobility (Canada)', '%s@txt.bell.ca', now()),
+ (100063, 'Boost Mobile', '%s@myboostmobile.com', now()),
+ (100064, 'Cellular One (Dobson)', '%s@mobile.celloneusa.com', now()),
+ (100065, 'Cingular (Postpaid)', '%s@cingularme.com', now()),
+ (100066, 'Centennial Wireless', '%s@cwemail.com', now()),
+ (100067, 'Cingular (GoPhone prepaid)', '%s@cingularme.com', now()),
+ (100068, 'Claro (Nicaragua)', '%s@ideasclaro-ca.com', now()),
+ (100069, 'Comcel', '%s@comcel.com.co', now()),
+ (100070, 'Cricket', '%s@sms.mycricket.com', now()),
+ (100071, 'CTI', '%s@sms.ctimovil.com.ar', now()),
+ (100072, 'Emtel (Mauritius)', '%s@emtelworld.net', now()),
+ (100073, 'Fido (Canada)', '%s@fido.ca', now()),
+ (100074, 'General Communications Inc.', '%s@msg.gci.net', now()),
+ (100075, 'Globalstar', '%s@msg.globalstarusa.com', now()),
+ (100076, 'Helio', '%s@myhelio.com', now()),
+ (100077, 'Illinois Valley Cellular', '%s@ivctext.com', now()),
+ (100078, 'i wireless', '%s.iws@iwspcs.net', now()),
+ (100079, 'Meteor (Ireland)', '%s@sms.mymeteor.ie', now()),
+ (100080, 'Mero Mobile (Nepal)', '%s@sms.spicenepal.com', now()),
+ (100081, 'MetroPCS', '%s@mymetropcs.com', now()),
+ (100082, 'Movicom', '%s@movimensaje.com.ar', now()),
+ (100083, 'Mobitel (Sri Lanka)', '%s@sms.mobitel.lk', now()),
+ (100084, 'Movistar (Colombia)', '%s@movistar.com.co', now()),
+ (100085, 'MTN (South Africa)', '%s@sms.co.za', now()),
+ (100086, 'MTS (Canada)', '%s@text.mtsmobility.com', now()),
+ (100087, 'Nextel (Argentina)', '%s@nextel.net.ar', now()),
+ (100088, 'Orange (Poland)', '%s@orange.pl', now()),
+ (100089, 'Personal (Argentina)', '%s@personal-net.com.ar', now()),
+ (100090, 'Plus GSM (Poland)', '%s@text.plusgsm.pl', now()),
+ (100091, 'President\'s Choice (Canada)', '%s@txt.bell.ca', now()),
+ (100092, 'Qwest', '%s@qwestmp.com', now()),
+ (100093, 'Rogers (Canada)', '%s@pcs.rogers.com', now()),
+ (100094, 'Sasktel (Canada)', '%s@sms.sasktel.com', now()),
+ (100095, 'Setar Mobile email (Aruba)', '%s@mas.aw', now()),
+ (100096, 'Solo Mobile', '%s@txt.bell.ca', now()),
+ (100097, 'Sprint (PCS)', '%s@messaging.sprintpcs.com', now()),
+ (100098, 'Sprint (Nextel)', '%s@page.nextel.com', now()),
+ (100099, 'Suncom', '%s@tms.suncom.com', now()),
+ (100100, 'T-Mobile', '%s@tmomail.net', now()),
+ (100101, 'T-Mobile (Austria)', '%s@sms.t-mobile.at', now()),
+ (100102, 'Telus Mobility (Canada)', '%s@msg.telus.com', now()),
+ (100103, 'Thumb Cellular', '%s@sms.thumbcellular.com', now()),
+ (100104, 'Tigo (Formerly Ola)', '%s@sms.tigo.com.co', now()),
+ (100105, 'Unicel', '%s@utext.com', now()),
+ (100106, 'US Cellular', '%s@email.uscc.net', now()),
+ (100107, 'Verizon', '%s@vtext.com', now()),
+ (100108, 'Virgin Mobile (Canada)', '%s@vmobile.ca', now()),
+ (100109, 'Virgin Mobile (USA)', '%s@vmobl.com', now()),
+ (100110, 'YCC', '%s@sms.ycc.ru', now()),
+ (100111, 'Orange (UK)', '%s@orange.net', now()),
+ (100112, 'Cincinnati Bell Wireless', '%s@gocbw.com', now()),
+ (100113, 'T-Mobile Germany', '%s@t-mobile-sms.de', now()),
+ (100114, 'Vodafone Germany', '%s@vodafone-sms.de', now()),
+ (100115, 'E-Plus', '%s@smsmail.eplus.de', now());