1package anaconda 2 3import ( 4 "net/url" 5 "strconv" 6 "strings" 7) 8 9// CreateList implements /lists/create.json 10func (a TwitterApi) CreateList(name, description string, v url.Values) (list List, err error) { 11 v = cleanValues(v) 12 v.Set("name", name) 13 v.Set("description", description) 14 15 response_ch := make(chan response) 16 a.queryQueue <- query{a.baseUrl + "/lists/create.json", v, &list, _POST, response_ch} 17 return list, (<-response_ch).err 18} 19 20// AddUserToList implements /lists/members/create.json 21func (a TwitterApi) AddUserToList(screenName string, listID int64, v url.Values) (users []User, err error) { 22 v = cleanValues(v) 23 v.Set("list_id", strconv.FormatInt(listID, 10)) 24 v.Set("screen_name", screenName) 25 26 var addUserToListResponse AddUserToListResponse 27 28 response_ch := make(chan response) 29 a.queryQueue <- query{a.baseUrl + "/lists/members/create.json", v, &addUserToListResponse, _POST, response_ch} 30 return addUserToListResponse.Users, (<-response_ch).err 31} 32 33// AddMultipleUsersToList implements /lists/members/create_all.json 34func (a TwitterApi) AddMultipleUsersToList(screenNames []string, listID int64, v url.Values) (list List, err error) { 35 v = cleanValues(v) 36 v.Set("list_id", strconv.FormatInt(listID, 10)) 37 v.Set("screen_name", strings.Join(screenNames, ",")) 38 39 response_ch := make(chan response) 40 a.queryQueue <- query{a.baseUrl + "/lists/members/create_all.json", v, &list, _POST, response_ch} 41 r := <-response_ch 42 return list, r.err 43} 44 45// GetListsOwnedBy implements /lists/ownerships.json 46// screen_name, count, and cursor are all optional values 47func (a TwitterApi) GetListsOwnedBy(userID int64, v url.Values) (lists []List, err error) { 48 v = cleanValues(v) 49 v.Set("user_id", strconv.FormatInt(userID, 10)) 50 51 var listResponse ListResponse 52 53 response_ch := make(chan response) 54 a.queryQueue <- query{a.baseUrl + "/lists/ownerships.json", v, &listResponse, _GET, response_ch} 55 return listResponse.Lists, (<-response_ch).err 56} 57 58func (a TwitterApi) GetListTweets(listID int64, includeRTs bool, v url.Values) (tweets []Tweet, err error) { 59 v = cleanValues(v) 60 v.Set("list_id", strconv.FormatInt(listID, 10)) 61 v.Set("include_rts", strconv.FormatBool(includeRTs)) 62 63 response_ch := make(chan response) 64 a.queryQueue <- query{a.baseUrl + "/lists/statuses.json", v, &tweets, _GET, response_ch} 65 return tweets, (<-response_ch).err 66} 67 68// GetList implements /lists/show.json 69func (a TwitterApi) GetList(listID int64, v url.Values) (list List, err error) { 70 v = cleanValues(v) 71 v.Set("list_id", strconv.FormatInt(listID, 10)) 72 73 response_ch := make(chan response) 74 a.queryQueue <- query{a.baseUrl + "/lists/show.json", v, &list, _GET, response_ch} 75 return list, (<-response_ch).err 76} 77 78func (a TwitterApi) GetListTweetsBySlug(slug string, ownerScreenName string, includeRTs bool, v url.Values) (tweets []Tweet, err error) { 79 v = cleanValues(v) 80 v.Set("slug", slug) 81 v.Set("owner_screen_name", ownerScreenName) 82 v.Set("include_rts", strconv.FormatBool(includeRTs)) 83 84 response_ch := make(chan response) 85 a.queryQueue <- query{a.baseUrl + "/lists/statuses.json", v, &tweets, _GET, response_ch} 86 return tweets, (<-response_ch).err 87} 88