Merge lp:~mardy/account-polld-plugins-go/manifests into lp:account-polld-plugins-go

Proposed by Alberto Mardegan
Status: Needs review
Proposed branch: lp:~mardy/account-polld-plugins-go/manifests
Merge into: lp:account-polld-plugins-go
Diff against target: 537 lines (+269/-30)
19 files modified
.bzrignore (+6/-0)
cmd/poll-caldav/main.go (+33/-0)
cmd/poll-dekko/main.go (+48/-0)
cmd/poll-gcalendar/main.go (+33/-0)
cmd/poll-gmail/main.go (+1/-1)
cmd/poll-twitter/main.go (+33/-0)
data/polld-caldav.json (+6/-0)
data/polld-dekko.json (+5/-0)
data/polld-gcalendar.json (+6/-0)
data/polld-gmail.json (+5/-0)
data/polld-twitter.json (+5/-0)
debian/03_run-account-polld-hook (+6/-0)
debian/account-polld-plugins-go.migrations (+1/-0)
debian/control (+6/-3)
debian/rules (+22/-1)
plugins/ipc.go (+6/-6)
plugins/plugins.go (+1/-5)
plugins/twitter/twitter.go (+44/-12)
plugins/twitter/twitter_test.go (+2/-2)
To merge this branch: bzr merge lp:~mardy/account-polld-plugins-go/manifests
Reviewer Review Type Date Requested Status
Alexandre Abreu (community) Approve
Review via email: mp+305220@code.launchpad.net

Commit message

Add all plugin binaries and manifest files

Description of the change

Add all plugin binaries and manifest files

To post a comment you must log in.
191. By Alberto Mardegan

depend on dbus-go

192. By Alberto Mardegan

Depend on pkg-config

193. By Alberto Mardegan

Add g++ dep

194. By Alberto Mardegan

Try fixing gccgo builds

195. By Alberto Mardegan

rename script

196. By Alberto Mardegan

fix manifest of dekko plugin

197. By Alberto Mardegan

Fix case in auth data

198. By Alberto Mardegan

Save data in the same old location

199. By Alberto Mardegan

Twitter: remember last IDs

200. By Alberto Mardegan

Twitter plugin: properly load/save state

201. By Alberto Mardegan

Do not install qtcontact-test app

Revision history for this message
Alexandre Abreu (abreu-alexandre) wrote :

inline comments

review: Needs Information
Revision history for this message
Alberto Mardegan (mardy) wrote :

Replied to comments, MP updated.

202. By Alberto Mardegan

copyright date

Revision history for this message
Alexandre Abreu (abreu-alexandre) wrote :

LGTM

review: Approve

Unmerged revisions

202. By Alberto Mardegan

copyright date

201. By Alberto Mardegan

Do not install qtcontact-test app

200. By Alberto Mardegan

Twitter plugin: properly load/save state

199. By Alberto Mardegan

Twitter: remember last IDs

198. By Alberto Mardegan

Save data in the same old location

197. By Alberto Mardegan

Fix case in auth data

196. By Alberto Mardegan

fix manifest of dekko plugin

195. By Alberto Mardegan

rename script

194. By Alberto Mardegan

Try fixing gccgo builds

193. By Alberto Mardegan

Add g++ dep

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file '.bzrignore'
2--- .bzrignore 1970-01-01 00:00:00 +0000
3+++ .bzrignore 2016-10-12 07:28:11 +0000
4@@ -0,0 +1,6 @@
5+debian/*.log
6+debian/*.substvars
7+debian/account-polld-plugins-go/
8+debian/files
9+debian/*stamp
10+obj-*/
11
12=== added directory 'cmd/poll-caldav'
13=== added file 'cmd/poll-caldav/main.go'
14--- cmd/poll-caldav/main.go 1970-01-01 00:00:00 +0000
15+++ cmd/poll-caldav/main.go 2016-10-12 07:28:11 +0000
16@@ -0,0 +1,33 @@
17+/*
18+ Copyright 2016 Canonical Ltd.
19+
20+ This program is free software: you can redistribute it and/or modify it
21+ under the terms of the GNU General Public License version 3, as published
22+ by the Free Software Foundation.
23+
24+ This program is distributed in the hope that it will be useful, but
25+ WITHOUT ANY WARRANTY; without even the implied warranties of
26+ MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
27+ PURPOSE. See the GNU General Public License for more details.
28+
29+ You should have received a copy of the GNU General Public License along
30+ with this program. If not, see <http://www.gnu.org/licenses/>.
31+*/
32+
33+package main
34+
35+import (
36+ "launchpad.net/account-polld/gettext"
37+ "launchpad.net/account-polld/plugins"
38+ "launchpad.net/account-polld/plugins/caldav"
39+)
40+
41+func main() {
42+ // Initialize i18n
43+ gettext.SetLocale(gettext.LC_ALL, "")
44+ gettext.Textdomain("account-polld")
45+ gettext.BindTextdomain("account-polld", "/usr/share/locale")
46+
47+ runner := plugins.NewPluginRunner(caldav.New())
48+ runner.Run()
49+}
50
51=== added directory 'cmd/poll-dekko'
52=== added file 'cmd/poll-dekko/main.go'
53--- cmd/poll-dekko/main.go 1970-01-01 00:00:00 +0000
54+++ cmd/poll-dekko/main.go 2016-10-12 07:28:11 +0000
55@@ -0,0 +1,48 @@
56+/*
57+ Copyright 2016 Canonical Ltd.
58+
59+ This program is free software: you can redistribute it and/or modify it
60+ under the terms of the GNU General Public License version 3, as published
61+ by the Free Software Foundation.
62+
63+ This program is distributed in the hope that it will be useful, but
64+ WITHOUT ANY WARRANTY; without even the implied warranties of
65+ MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
66+ PURPOSE. See the GNU General Public License for more details.
67+
68+ You should have received a copy of the GNU General Public License along
69+ with this program. If not, see <http://www.gnu.org/licenses/>.
70+*/
71+
72+package main
73+
74+import (
75+ "sync"
76+
77+ "launchpad.net/account-polld/gettext"
78+ "launchpad.net/account-polld/plugins"
79+ "launchpad.net/account-polld/plugins/dekko"
80+ "launchpad.net/account-polld/qtcontact"
81+)
82+
83+var mainLoopOnce sync.Once
84+
85+func init() {
86+ startMainLoop()
87+}
88+
89+func startMainLoop() {
90+ mainLoopOnce.Do(func() {
91+ go qtcontact.MainLoopStart()
92+ })
93+}
94+
95+func main() {
96+ // Initialize i18n
97+ gettext.SetLocale(gettext.LC_ALL, "")
98+ gettext.Textdomain("account-polld")
99+ gettext.BindTextdomain("account-polld", "/usr/share/locale")
100+
101+ runner := plugins.NewPluginRunner(dekko.New())
102+ runner.Run()
103+}
104
105=== added directory 'cmd/poll-gcalendar'
106=== added file 'cmd/poll-gcalendar/main.go'
107--- cmd/poll-gcalendar/main.go 1970-01-01 00:00:00 +0000
108+++ cmd/poll-gcalendar/main.go 2016-10-12 07:28:11 +0000
109@@ -0,0 +1,33 @@
110+/*
111+ Copyright 2016 Canonical Ltd.
112+
113+ This program is free software: you can redistribute it and/or modify it
114+ under the terms of the GNU General Public License version 3, as published
115+ by the Free Software Foundation.
116+
117+ This program is distributed in the hope that it will be useful, but
118+ WITHOUT ANY WARRANTY; without even the implied warranties of
119+ MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
120+ PURPOSE. See the GNU General Public License for more details.
121+
122+ You should have received a copy of the GNU General Public License along
123+ with this program. If not, see <http://www.gnu.org/licenses/>.
124+*/
125+
126+package main
127+
128+import (
129+ "launchpad.net/account-polld/gettext"
130+ "launchpad.net/account-polld/plugins"
131+ "launchpad.net/account-polld/plugins/gcalendar"
132+)
133+
134+func main() {
135+ // Initialize i18n
136+ gettext.SetLocale(gettext.LC_ALL, "")
137+ gettext.Textdomain("account-polld")
138+ gettext.BindTextdomain("account-polld", "/usr/share/locale")
139+
140+ runner := plugins.NewPluginRunner(gcalendar.New())
141+ runner.Run()
142+}
143
144=== modified file 'cmd/poll-gmail/main.go'
145--- cmd/poll-gmail/main.go 2016-08-30 09:30:59 +0000
146+++ cmd/poll-gmail/main.go 2016-10-12 07:28:11 +0000
147@@ -1,5 +1,5 @@
148 /*
149- Copyright 2014 Canonical Ltd.
150+ Copyright 2016 Canonical Ltd.
151
152 This program is free software: you can redistribute it and/or modify it
153 under the terms of the GNU General Public License version 3, as published
154
155=== added directory 'cmd/poll-twitter'
156=== added file 'cmd/poll-twitter/main.go'
157--- cmd/poll-twitter/main.go 1970-01-01 00:00:00 +0000
158+++ cmd/poll-twitter/main.go 2016-10-12 07:28:11 +0000
159@@ -0,0 +1,33 @@
160+/*
161+ Copyright 2016 Canonical Ltd.
162+
163+ This program is free software: you can redistribute it and/or modify it
164+ under the terms of the GNU General Public License version 3, as published
165+ by the Free Software Foundation.
166+
167+ This program is distributed in the hope that it will be useful, but
168+ WITHOUT ANY WARRANTY; without even the implied warranties of
169+ MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
170+ PURPOSE. See the GNU General Public License for more details.
171+
172+ You should have received a copy of the GNU General Public License along
173+ with this program. If not, see <http://www.gnu.org/licenses/>.
174+*/
175+
176+package main
177+
178+import (
179+ "launchpad.net/account-polld/gettext"
180+ "launchpad.net/account-polld/plugins"
181+ "launchpad.net/account-polld/plugins/twitter"
182+)
183+
184+func main() {
185+ // Initialize i18n
186+ gettext.SetLocale(gettext.LC_ALL, "")
187+ gettext.Textdomain("account-polld")
188+ gettext.BindTextdomain("account-polld", "/usr/share/locale")
189+
190+ runner := plugins.NewPluginRunner(twitter.New())
191+ runner.Run()
192+}
193
194=== added file 'data/polld-caldav.json'
195--- data/polld-caldav.json 1970-01-01 00:00:00 +0000
196+++ data/polld-caldav.json 2016-10-12 07:28:11 +0000
197@@ -0,0 +1,6 @@
198+{
199+ "exec": "/usr/bin/poll-caldav",
200+ "app_id": "com.ubuntu.calendar_calendar",
201+ "service_ids": [ "owncloud-caldav" ],
202+ "needs_authentication_data": true
203+}
204
205=== added file 'data/polld-dekko.json'
206--- data/polld-dekko.json 1970-01-01 00:00:00 +0000
207+++ data/polld-dekko.json 2016-10-12 07:28:11 +0000
208@@ -0,0 +1,5 @@
209+{
210+ "exec": "/usr/bin/poll-dekko",
211+ "app_id": "dekko.dekkoproject_dekko",
212+ "needs_authentication_data": true
213+}
214
215=== added file 'data/polld-gcalendar.json'
216--- data/polld-gcalendar.json 1970-01-01 00:00:00 +0000
217+++ data/polld-gcalendar.json 2016-10-12 07:28:11 +0000
218@@ -0,0 +1,6 @@
219+{
220+ "exec": "/usr/bin/poll-gcalendar",
221+ "app_id": "com.ubuntu.calendar_calendar",
222+ "service_ids": [ "google-caldav" ],
223+ "needs_authentication_data": true
224+}
225
226=== added file 'data/polld-gmail.json'
227--- data/polld-gmail.json 1970-01-01 00:00:00 +0000
228+++ data/polld-gmail.json 2016-10-12 07:28:11 +0000
229@@ -0,0 +1,5 @@
230+{
231+ "exec": "/usr/bin/poll-gmail",
232+ "app_id": "com.ubuntu.developer.webapps.webapp-gmail_webapp-gmail",
233+ "needs_authentication_data": true
234+}
235
236=== added file 'data/polld-twitter.json'
237--- data/polld-twitter.json 1970-01-01 00:00:00 +0000
238+++ data/polld-twitter.json 2016-10-12 07:28:11 +0000
239@@ -0,0 +1,5 @@
240+{
241+ "exec": "/usr/bin/poll-twitter",
242+ "app_id": "com.ubuntu.developer.webapps.webapp-twitter_webapp-twitter",
243+ "needs_authentication_data": true
244+}
245
246=== added file 'debian/03_run-account-polld-hook'
247--- debian/03_run-account-polld-hook 1970-01-01 00:00:00 +0000
248+++ debian/03_run-account-polld-hook 2016-10-12 07:28:11 +0000
249@@ -0,0 +1,6 @@
250+#!/bin/sh
251+
252+set -ex
253+
254+/usr/lib/account-polld/click-hook
255+
256
257=== added file 'debian/account-polld-plugins-go.migrations'
258--- debian/account-polld-plugins-go.migrations 1970-01-01 00:00:00 +0000
259+++ debian/account-polld-plugins-go.migrations 2016-10-12 07:28:11 +0000
260@@ -0,0 +1,1 @@
261+debian/03_run-account-polld-hook
262
263=== modified file 'debian/control'
264--- debian/control 2016-08-30 09:54:41 +0000
265+++ debian/control 2016-10-12 07:28:11 +0000
266@@ -4,17 +4,20 @@
267 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
268 Build-Depends: debhelper (>= 9),
269 dh-golang,
270+ dh-migrations,
271 dh-translations,
272 golang-go,
273+ golang-go-dbus-dev,
274 golang-go-xdg-dev,
275 golang-gocheck-dev,
276+ pkg-config,
277 qt5-default,
278 qtbase5-dev,
279 qtpim5-dev,
280 Standards-Version: 3.9.5
281-Homepage: https://launchpad.net/account-polld
282-Vcs-Browser: http://bazaar.launchpad.net/~phablet-team/account-polld/trunk/files
283-Vcs-Bzr: lp:account-polld
284+Homepage: https://launchpad.net/account-polld-plugins-go
285+Vcs-Browser: http://bazaar.launchpad.net/~online-accounts/account-polld-plugins-go/trunk/files
286+Vcs-Bzr: lp:account-polld-plugins-go
287
288 Package: account-polld-plugins-go
289 Architecture: any
290
291=== modified file 'debian/rules'
292--- debian/rules 2016-08-30 09:54:41 +0000
293+++ debian/rules 2016-10-12 07:28:11 +0000
294@@ -5,15 +5,32 @@
295 export DH_GOPKG := launchpad.net/account-polld
296 export DH_GOLANG_INSTALL_ALL := 1
297
298+# Fix copied from https://bugs.launchpad.net/bugs/1431486
299++DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
300+
301+ifneq (,$(filter $(DEB_HOST_ARCH), arm64 powerpc ppc64el))
302+ pkg_configs = Qt5Core Qt5Contacts
303+ export CGO_CFLAGS := \
304+ $(shell $(foreach pkg, $(pkg_configs), pkg-config --cflags $(pkg); ))
305+ export CGO_CXXFLAGS := $(CGO_CFLAGS)
306+ export CGO_LDFLAGS := \
307+ $(shell $(foreach pkg, $(pkg_configs), pkg-config --libs $(pkg); ))
308+ $(warning setting CGO_CFLAGS = $(CGO_CFLAGS))
309+ $(warning setting CGO_CXXFLAGS = $(CGO_CXXFLAGS))
310+ $(warning setting CGO_LDFLAGS = $(CGO_LDFLAGS))
311+endif
312+
313 %:
314 dh $@ \
315 --buildsystem=golang \
316 --with=golang \
317+ --with=migrations \
318 --with=translations \
319 --fail-missing
320
321 override_dh_auto_install:
322 dh_auto_install -O--buildsystem=golang
323+ rm ${CURDIR}/debian/account-polld-plugins-go/usr/bin/qtcontact-test
324 # all our libs are private
325 rm -r \
326 ${CURDIR}/debian/account-polld-plugins-go/usr/share/gocode
327@@ -22,11 +39,15 @@
328 for pofile in po/*.po; do \
329 pofilename="$${pofile##*/}"; \
330 langcode="$${pofilename%.*}"; \
331- localedir="debian/$$appname/usr/share/locale/$$langcode/LC_MESSAGES"; \
332+ localedir="debian/account-polld-plugins-go/usr/share/locale/$$langcode/LC_MESSAGES"; \
333 mkdir -p $$localedir; \
334 mofile="$$localedir/$$appname.mo"; \
335 msgfmt -o $$mofile $$pofile; \
336 done
337+ # manifest files
338+ manifestdir="debian/account-polld-plugins-go/usr/share/account-polld/plugins"; \
339+ mkdir -p "$$manifestdir"; \
340+ cp data/polld-*.json "$$manifestdir"
341
342 override_dh_strip:
343 echo "Skipping strip (LP: #1318027)"
344
345=== modified file 'plugins/ipc.go'
346--- plugins/ipc.go 2016-08-29 11:48:42 +0000
347+++ plugins/ipc.go 2016-10-12 07:28:11 +0000
348@@ -73,22 +73,22 @@
349 var data AuthData
350 data.ApplicationId = msg.ApplicationId
351 data.AccountId = msg.AccountId
352- if v, ok := msg.Auth["clientId"]; ok {
353+ if v, ok := msg.Auth["ClientId"]; ok {
354 data.ClientId = v.(string)
355 }
356- if v, ok := msg.Auth["clientSecret"]; ok {
357+ if v, ok := msg.Auth["ClientSecret"]; ok {
358 data.ClientSecret = v.(string)
359 }
360- if v, ok := msg.Auth["accessToken"]; ok {
361+ if v, ok := msg.Auth["AccessToken"]; ok {
362 data.AccessToken = v.(string)
363 }
364- if v, ok := msg.Auth["tokenSecret"]; ok {
365+ if v, ok := msg.Auth["TokenSecret"]; ok {
366 data.TokenSecret = v.(string)
367 }
368- if v, ok := msg.Auth["secret"]; ok {
369+ if v, ok := msg.Auth["Secret"]; ok {
370 data.Secret = v.(string)
371 }
372- if v, ok := msg.Auth["userName"]; ok {
373+ if v, ok := msg.Auth["UserName"]; ok {
374 data.UserName = v.(string)
375 }
376 w.C <- data
377
378=== modified file 'plugins/plugins.go'
379--- plugins/plugins.go 2016-08-29 10:51:12 +0000
380+++ plugins/plugins.go 2016-10-12 07:28:11 +0000
381@@ -28,10 +28,6 @@
382 "launchpad.net/go-xdg/v0"
383 )
384
385-func init() {
386- cmdName = filepath.Base(os.Args[0])
387-}
388-
389 // Plugin is an interface which the plugins will adhere to for the poll
390 // daemon to interact with.
391 //
392@@ -168,7 +164,7 @@
393 // the web service reported that the authentication token has expired.
394 var ErrTokenExpired = errors.New("Token expired")
395
396-var cmdName string
397+var cmdName = "account-polld"
398
399 var XdgDataFind = xdg.Data.Find
400 var XdgDataEnsure = xdg.Data.Ensure
401
402=== modified file 'plugins/twitter/twitter.go'
403--- plugins/twitter/twitter.go 2016-08-29 12:12:01 +0000
404+++ plugins/twitter/twitter.go 2016-10-12 07:28:11 +0000
405@@ -19,6 +19,7 @@
406 import (
407 "encoding/json"
408 "fmt"
409+ "log"
410 "net/http"
411 "net/url"
412 "sort"
413@@ -38,11 +39,16 @@
414 maxIndividualDirectMessages = 2
415 consolidatedDirectMessageIndexStart = maxIndividualDirectMessages
416 twitterDispatchUrlBase = "https://mobile.twitter.com"
417+ pluginName = "twitter"
418 )
419
420+type twitterConfig struct {
421+ LastMentionId int64 `json:"lastMentionId"`
422+ LastDirectMessageId int64 `json:"lastDirectMessageId"`
423+}
424+
425 type twitterPlugin struct {
426- lastMentionId int64
427- lastDirectMessageId int64
428+ config twitterConfig
429 }
430
431 func New() plugins.Plugin {
432@@ -102,7 +108,7 @@
433 if len(statuses) < 1 {
434 return nil, nil
435 }
436- p.lastMentionId = statuses[0].Id
437+ p.config.LastMentionId = statuses[0].Id
438
439 pushMsg := make([]*plugins.PushMessage, len(statuses))
440 for i, s := range statuses {
441@@ -162,7 +168,7 @@
442 if len(dms) < 1 {
443 return nil, nil
444 }
445- p.lastDirectMessageId = dms[0].Id
446+ p.config.LastDirectMessageId = dms[0].Id
447
448 pushMsg := make([]*plugins.PushMessage, len(dms))
449 for i, m := range dms {
450@@ -196,10 +202,28 @@
451 return plugins.NewStandardPushMessage(summary, body, action, "", epoch)
452 }
453
454+func (p *twitterPlugin) loadPersistentData(accountId uint) error {
455+ err := plugins.FromPersist(pluginName, accountId, &p.config)
456+ return err
457+}
458+
459+func (p *twitterPlugin) savePersistentData(accountId uint) error {
460+ err := plugins.Persist(pluginName, accountId, p.config)
461+ if err != nil {
462+ log.Print("twitter plugin ", accountId, ": failed to save state: ", err)
463+ }
464+ return err
465+}
466+
467 func (p *twitterPlugin) Poll(authData *plugins.AuthData) (batches []*plugins.PushMessageBatch, err error) {
468+ defer p.savePersistentData(authData.AccountId)
469+ p.loadPersistentData(authData.AccountId)
470+
471 url := "statuses/mentions_timeline.json"
472- if p.lastMentionId > 0 {
473- url = fmt.Sprintf("%s?since_id=%d", url, p.lastMentionId)
474+ notifyMentions := false
475+ if p.config.LastMentionId > 0 {
476+ url = fmt.Sprintf("%s?since_id=%d", url, p.config.LastMentionId)
477+ notifyMentions = true
478 }
479 resp, err := p.request(authData, url)
480 if err != nil {
481@@ -211,8 +235,10 @@
482 }
483
484 url = "direct_messages.json"
485- if p.lastDirectMessageId > 0 {
486- url = fmt.Sprintf("%s?since_id=%d", url, p.lastDirectMessageId)
487+ notifyMessages := false
488+ if p.config.LastDirectMessageId > 0 {
489+ url = fmt.Sprintf("%s?since_id=%d", url, p.config.LastDirectMessageId)
490+ notifyMessages = true
491 }
492 resp, err = p.request(authData, url)
493 if err != nil {
494@@ -222,11 +248,17 @@
495 if err != nil {
496 return
497 }
498- if statuses != nil && len(statuses.Messages) > 0 {
499- batches = append(batches, statuses)
500+ // Don't send any notifications if this is the very first time we run:
501+ // otherwise we would emit notifications for all the old messages too
502+ if notifyMentions {
503+ if statuses != nil && len(statuses.Messages) > 0 {
504+ batches = append(batches, statuses)
505+ }
506 }
507- if dms != nil && len(dms.Messages) > 0 {
508- batches = append(batches, dms)
509+ if notifyMessages {
510+ if dms != nil && len(dms.Messages) > 0 {
511+ batches = append(batches, dms)
512+ }
513 }
514 return
515 }
516
517=== modified file 'plugins/twitter/twitter_test.go'
518--- plugins/twitter/twitter_test.go 2015-03-20 14:34:48 +0000
519+++ plugins/twitter/twitter_test.go 2016-10-12 07:28:11 +0000
520@@ -425,7 +425,7 @@
521 c.Check(messages[1].Notification.Card.Icon, Equals, "http://a0.twimg.com/profile_images/1305509670/chatMikeTwitter_normal.png")
522 c.Assert(len(messages[1].Notification.Card.Actions), Equals, 1)
523 c.Check(messages[1].Notification.Card.Actions[0], Equals, "https://mobile.twitter.com/mikedroid/statuses/242534402280783873")
524- c.Check(p.lastMentionId, Equals, int64(242613977966850048))
525+ c.Check(p.config.LastMentionId, Equals, int64(242613977966850048))
526 }
527
528 func (s S) TestParseStatusesError(c *C) {
529@@ -470,7 +470,7 @@
530 c.Check(messages[0].Notification.Card.Icon, Equals, "http://a0.twimg.com/profile_images/1751506047/dead_sexy_normal.JPG")
531 c.Assert(len(messages[0].Notification.Card.Actions), Equals, 1)
532 c.Check(messages[0].Notification.Card.Actions[0], Equals, "https://mobile.twitter.com/theSeanCook/messages")
533- c.Check(p.lastDirectMessageId, Equals, int64(240136858829479936))
534+ c.Check(p.config.LastDirectMessageId, Equals, int64(240136858829479936))
535 }
536
537 func (s S) TestParseDirectMessagesError(c *C) {

Subscribers

People subscribed via source and target branches