Merge lp:~terrycojones/tickery/fluiddb-to-fluidinfo-798338 into lp:tickery

Proposed by Terry Jones
Status: Merged
Approved by: Terry Jones
Approved revision: 10
Merge reported by: Terry Jones
Merged at revision: not available
Proposed branch: lp:~terrycojones/tickery/fluiddb-to-fluidinfo-798338
Merge into: lp:tickery
Diff against target: 908 lines (+157/-155)
22 files modified
README (+8/-8)
bin/create-twitter-namespaces-and-tags.py (+4/-4)
doc/Makefile (+2/-2)
doc/conf.py (+1/-1)
doc/running.rst (+11/-11)
doc/todo.rst (+6/-6)
fabfile.py (+4/-3)
resources/upstart/www.tickery.net.conf (+1/-1)
tickery/ftwitter.py (+30/-30)
tickery/oidcache.py (+7/-6)
tickery/options.py (+4/-4)
tickery/query.py (+1/-1)
tickery/service.py (+10/-10)
tickery/utils.py (+5/-5)
tickery/www/about.py (+27/-27)
tickery/www/advanced.py (+29/-29)
tickery/www/banner.py (+1/-1)
tickery/www/defaults.py (+2/-2)
tickery/www/public/index.html (+1/-1)
tickery/www/results.py (+1/-1)
tickery/www/server.py (+1/-1)
tickery/www/tickerytab.py (+1/-1)
To merge this branch: bzr merge lp:~terrycojones/tickery/fluiddb-to-fluidinfo-798338
Reviewer Review Type Date Requested Status
Terry Jones Approve
Review via email: mp+64872@code.launchpad.net

Description of the change

Use Fluidinfo instead of FluidDB in many places...

To post a comment you must log in.
Revision history for this message
Terry Jones (terrycojones) wrote :

LGTM!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'README'
--- README 2010-07-20 09:47:02 +0000
+++ README 2011-06-16 17:39:31 +0000
@@ -1,16 +1,16 @@
1Welcome!1Welcome!
2--------2--------
33
4Tickery is an open-source application written on FluidDB4Tickery is an open-source application written on Fluidinfo
5(http://fluidinfo.com/). You can play with our running version at5(http://fluidinfo.com/). You can play with our running version at
6http://tickery.net6http://tickery.net
77
8Tickery provides a fun way to explore sets of Twitter friends. There's much8Tickery provides a fun way to explore sets of Twitter friends. There's much
9more to the story however, as its underlying data is stored in FluidDB. This9more to the story however, as its underlying data is stored in Fluidinfo. This
10means it can be added to by anyone (i.e., you!), and searched on in any way.10means it can be added to by anyone (i.e., you!), and searched on in any way.
1111
12We've open-sourced Tickery to help programmers see the insides of a12We've open-sourced Tickery to help programmers see the insides of a
13substantial application written to use FluidDB. Although the Tickery13substantial application written to use Fluidinfo. Although the Tickery
14documentation is currently very light, we hope to be able to change this.14documentation is currently very light, we hope to be able to change this.
15You're welcome to help, of course.15You're welcome to help, of course.
1616
@@ -21,10 +21,10 @@
21Fluidinfo blog:21Fluidinfo blog:
2222
23 Meet Tickery23 Meet Tickery
24 http://blogs.fluidinfo.com/fluidDB/2010/01/21/meet-tickery/24 http://blogs.fluidinfo.com/fluidinfo/2010/01/21/meet-tickery/
2525
26 Tickery, for programmers26 Tickery, for programmers
27 http://blogs.fluidinfo.com/fluidDB/2010/01/21/tickery-for-programmers/27 http://blogs.fluidinfo.com/fluidinfo/2010/01/21/tickery-for-programmers/
2828
29Running Tickery29Running Tickery
30---------------30---------------
@@ -39,10 +39,10 @@
39Questions?39Questions?
40----------40----------
4141
42For discussion of Tickery, we suggest you join the FluidDB users mailing list42For discussion of Tickery, we suggest you join the Fluidinfo users mailing list
43at http://groups.google.com/group/fluiddb-users or join us in #fluiddb on43at http://groups.google.com/group/fluiddb-users or join us in #fluidinfo on
44irc.freenode.net Please say hi, we're very interested in helping people to44irc.freenode.net Please say hi, we're very interested in helping people to
45understand both Tickery and FluidDB.45understand both Tickery and Fluidinfo.
4646
4747
48Happy hacking!48Happy hacking!
4949
=== modified file 'bin/create-twitter-namespaces-and-tags.py'
--- bin/create-twitter-namespaces-and-tags.py 2011-06-16 16:10:07 +0000
+++ bin/create-twitter-namespaces-and-tags.py 2011-06-16 17:39:31 +0000
@@ -80,7 +80,7 @@
80 (TWITTER_ID_TAG_NAME, 'Twitter user id.'),80 (TWITTER_ID_TAG_NAME, 'Twitter user id.'),
81 (TWITTER_SCREENNAME_TAG_NAME, 'Twitter screen name.'),81 (TWITTER_SCREENNAME_TAG_NAME, 'Twitter screen name.'),
82 (TWITTER_UPDATED_AT_TAG_NAME,82 (TWITTER_UPDATED_AT_TAG_NAME,
83 'Time (in seconds) of last update of this user in FluidDB.'),83 'Time (in seconds) of last update of this user in Fluidinfo.'),
84 (TWITTER_N_FRIENDS_TAG_NAME, 'Number of friends of a Twitter user.'),84 (TWITTER_N_FRIENDS_TAG_NAME, 'Number of friends of a Twitter user.'),
85 (TWITTER_N_FOLLOWERS_TAG_NAME,85 (TWITTER_N_FOLLOWERS_TAG_NAME,
86 'Number of followers of a Twitter user.'),86 'Number of followers of a Twitter user.'),
@@ -97,13 +97,13 @@
97 def nok(failure):97 def nok(failure):
98 print 'Failed:', failure98 print 'Failed:', failure
99 if hasattr(failure.value, 'response_headers'):99 if hasattr(failure.value, 'response_headers'):
100 foundFluidDBHeader = False100 foundFluidinfoHeader = False
101 for header in failure.value.response_headers:101 for header in failure.value.response_headers:
102 if header.startswith('x-fluiddb-'):102 if header.startswith('x-fluiddb-'):
103 foundFluidDBHeader = True103 foundFluidinfoHeader = True
104 print '\t%s: %s' % (104 print '\t%s: %s' % (
105 header, failure.value.response_headers[header][0])105 header, failure.value.response_headers[header][0])
106 if not foundFluidDBHeader:106 if not foundFluidinfoHeader:
107 print 'Headers: %r' % (failure.value.response_headers)107 print 'Headers: %r' % (failure.value.response_headers)
108 else:108 else:
109 return failure109 return failure
110110
=== modified file 'doc/Makefile'
--- doc/Makefile 2011-06-14 20:36:36 +0000
+++ doc/Makefile 2011-06-16 17:39:31 +0000
@@ -60,9 +60,9 @@
60 @echo60 @echo
61 @echo "Build finished; now you can run "qcollectiongenerator" with the" \61 @echo "Build finished; now you can run "qcollectiongenerator" with the" \
62 ".qhcp project file in _build/qthelp, like this:"62 ".qhcp project file in _build/qthelp, like this:"
63 @echo "# qcollectiongenerator _build/qthelp/fluidDB.qhcp"63 @echo "# qcollectiongenerator _build/qthelp/fluidinfo.qhcp"
64 @echo "To view the help file:"64 @echo "To view the help file:"
65 @echo "# assistant -collectionFile _build/qthelp/fluidDB.qhc"65 @echo "# assistant -collectionFile _build/qthelp/fluidinfo.qhc"
6666
67latex:67latex:
68 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex68 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex
6969
=== modified file 'doc/conf.py'
--- doc/conf.py 2011-06-16 16:10:07 +0000
+++ doc/conf.py 2011-06-16 17:39:31 +0000
@@ -155,7 +155,7 @@
155#html_file_suffix = ''155#html_file_suffix = ''
156156
157# Output file base name for HTML help builder.157# Output file base name for HTML help builder.
158htmlhelp_basename = 'fluidDBdoc'158htmlhelp_basename = 'fluidinfodoc'
159159
160160
161# -- Options for LaTeX output ------------------------------------------------161# -- Options for LaTeX output ------------------------------------------------
162162
=== modified file 'doc/running.rst'
--- doc/running.rst 2010-07-20 09:47:02 +0000
+++ doc/running.rst 2011-06-16 17:39:31 +0000
@@ -9,7 +9,7 @@
9Tickery's behavior with what you'll see in the source code.9Tickery's behavior with what you'll see in the source code.
1010
11We've open sourced Tickery so other developers can have a close look at11We've open sourced Tickery so other developers can have a close look at
12how a non-trivial FluidDB application is put together.12how a non-trivial Fluidinfo application is put together.
1313
14But we also want to make it possible for you to run your own version of14But we also want to make it possible for you to run your own version of
15Tickery.15Tickery.
@@ -38,23 +38,23 @@
38* `Ply <http://www.dabeaz.com/ply/>`_.38* `Ply <http://www.dabeaz.com/ply/>`_.
39* `Sphinx <http://sphinx.pocoo.org/>`_ (to build this documentation)39* `Sphinx <http://sphinx.pocoo.org/>`_ (to build this documentation)
4040
41One-time FluidDB setup41One-time Fluidinfo setup
42----------------------42------------------------
4343
44To run your own version of Tickery (as opposed to just browsing the source44To run your own version of Tickery (as opposed to just browsing the source
45code to see how Tickery does its thing), you'll need to use a FluidDB user45code to see how Tickery does its thing), you'll need to use a Fluidinfo user
46other than the one we use (we use ``twitter.com``). If you have a FluidDB46other than the one we use (we use ``twitter.com``). If you have a Fluidinfo
47account, you can use it, otherwise go to http://fluidinfo.com/accounts/new/47account, you can use it, otherwise go to http://fluidinfo.com/accounts/new/
48and create a FluidDB account.48and create a Fluidinfo account.
4949
50Put the FluidDB username you want to use into the ``TWITTER_USERNAME``50Put the Fluidinfo username you want to use into the ``TWITTER_USERNAME``
51variable in ``tickery/www/defaults`` and the FluidDB password into an51variable in ``tickery/www/defaults`` and the Fluidinfo password into an
52environment variable named ``FLUIDDB_TWITTER_PASSWORD``. You should then be52environment variable named ``FLUIDINFO_TWITTER_PASSWORD``. You should then be
53able to create the necessary FluidDB namespaces and tags for your FluidDB53able to create the necessary Fluidinfo namespaces and tags for your Fluidinfo
54user with the ``bin/create-twitter-namespaces-and-tags.py`` script.54user with the ``bin/create-twitter-namespaces-and-tags.py`` script.
5555
56This does as it says: creates the namespaces and tags that the user in56This does as it says: creates the namespaces and tags that the user in
57FluidDB will need to have in order for Tickery to work.57Fluidinfo will need to have in order for Tickery to work.
5858
59One-time Twitter setup59One-time Twitter setup
60----------------------60----------------------
6161
=== modified file 'doc/todo.rst'
--- doc/todo.rst 2010-07-20 09:47:02 +0000
+++ doc/todo.rst 2011-06-16 17:39:31 +0000
@@ -19,14 +19,14 @@
19* Make status window auto-update19* Make status window auto-update
20* Canonicalize some queries to improve cache hit ratio.20* Canonicalize some queries to improve cache hit ratio.
21* Set a timer to periodically update # of users tracked by Tickery.21* Set a timer to periodically update # of users tracked by Tickery.
22* Add a button to allow a user to update their Twitter details in FluidDB.22* Add a button to allow a user to update their Twitter details in Fluidinfo.
23 (i.e., we spider them, update their followers etc)23 (i.e., we spider them, update their followers etc)
24* Add a refreshFromFluidDB method to the caches that can use it.24* Add a refreshFromFluidinfo method to the caches that can use it.
25* The cache should expire things. Switch to memcached?25* The cache should expire things. Switch to memcached?
26* Need to re-spider users and refresh/update/expire other cache info.26* Need to re-spider users and refresh/update/expire other cache info.
27* Add twitter.com/SUL tags.27* Add twitter.com/SUL tags.
28* Requests to twitter (and FluidDB?) should have timeouts.28* Requests to twitter (and Fluidinfo?) should have timeouts.
29* Add an offline mode that only works on cached data in case FluidDB 29* Add an offline mode that only works on cached data in case Fluidinfo
30 or Twitter are down/inaccessible. Set this on/off on the admin page.30 or Twitter are down/inaccessible. Set this on/off on the admin page.
31* What do we do when a user changes from public to protected?31* What do we do when a user changes from public to protected?
32* Setting the visible limit on the simple tab text boxes doesn't work too well.32* Setting the visible limit on the simple tab text boxes doesn't work too well.
@@ -66,8 +66,8 @@
66* Add the ability to toggle noisy logging.66* Add the ability to toggle noisy logging.
67* Make admin interface auto-update?67* Make admin interface auto-update?
68* Allow us to act on the cache.68* Allow us to act on the cache.
69* Allow us to rebuild or refresh from FluidDB.69* Allow us to rebuild or refresh from Fluidinfo.
70* Ability to remove users from FluidDB?70* Ability to remove users from Fluidinfo?
71* Shows usage stats.71* Shows usage stats.
72* Should be able to send a HUP to Tickery to have caches dumped.72* Should be able to send a HUP to Tickery to have caches dumped.
7373
7474
=== modified file 'fabfile.py'
--- fabfile.py 2011-06-16 17:12:50 +0000
+++ fabfile.py 2011-06-16 17:39:31 +0000
@@ -1,6 +1,6 @@
1"""1"""
2This fabfile contains the recipe for automatically testing and deploying the2This fabfile contains the recipe for automatically testing and deploying the
3api.fluiddb.com website.3tickery.net website.
44
5Fabfiles are strange and configuring them is sometimes a bit hit and miss,5Fabfiles are strange and configuring them is sometimes a bit hit and miss,
6but nevertheless the following functions are defined by fabric:6but nevertheless the following functions are defined by fabric:
@@ -56,7 +56,8 @@
5656
57 run('. /srv/tickery/%(path)s/bin/activate' % env)57 run('. /srv/tickery/%(path)s/bin/activate' % env)
5858
59 run('/srv/tickery/%(path)s/bin/pip install --upgrade -r /srv/tickery/%(path)s/requirements.txt' % env)59 run('/srv/tickery/%(path)s/bin/pip install --upgrade '
60 '-r /srv/tickery/%(path)s/requirements.txt' % env)
6061
61 run('mkdir -p /srv/tickery/%(path)s/var/run' % env)62 run('mkdir -p /srv/tickery/%(path)s/var/run' % env)
62 run('chmod a+w /srv/tickery/%(path)s/var/run' % env)63 run('chmod a+w /srv/tickery/%(path)s/var/run' % env)
@@ -73,7 +74,7 @@
73 require('hosts', provided_by=[live])74 require('hosts', provided_by=[live])
74 run('rm -f /srv/tickery/%(sitename)s' % env)75 run('rm -f /srv/tickery/%(sitename)s' % env)
75 run('ln -s /srv/tickery/%(path)s /srv/tickery/%(sitename)s' % env)76 run('ln -s /srv/tickery/%(path)s /srv/tickery/%(sitename)s' % env)
76# run('restart %(sitename)s' % env)77 # run('restart %(sitename)s' % env)
7778
7879
79def deploy():80def deploy():
8081
=== modified file 'resources/upstart/www.tickery.net.conf'
--- resources/upstart/www.tickery.net.conf 2011-06-16 17:12:50 +0000
+++ resources/upstart/www.tickery.net.conf 2011-06-16 17:39:31 +0000
@@ -13,7 +13,7 @@
13. $VIRTUALENV_HOME/bin/activate13. $VIRTUALENV_HOME/bin/activate
14export TICKERY_CONSUMER_KEY=xxx14export TICKERY_CONSUMER_KEY=xxx
15export TICKERY_CONSUMER_SECRET=xxx15export TICKERY_CONSUMER_SECRET=xxx
16export FLUIDDB_TWITTER_PASSWORD=xxx16export FLUIDINFO_TWITTER_PASSWORD=xxx
17exec /sbin/start-stop-daemon --start --chdir $VIRTUALENV_HOME \17exec /sbin/start-stop-daemon --start --chdir $VIRTUALENV_HOME \
18 --chuid $TICKERY_USER --exec /usr/bin/env -- twistd \18 --chuid $TICKERY_USER --exec /usr/bin/env -- twistd \
19 --pidfile=/srv/tickery/tickery.net/var/run/tickery.$$.pid \19 --pidfile=/srv/tickery/tickery.net/var/run/tickery.$$.pid \
2020
=== modified file 'tickery/ftwitter.py'
--- tickery/ftwitter.py 2011-06-16 16:57:37 +0000
+++ tickery/ftwitter.py 2011-06-16 17:39:31 +0000
@@ -30,7 +30,7 @@
30 TWITTER_N_FOLLOWERS_TAG_NAME, TWITTER_N_STATUSES_TAG_NAME)30 TWITTER_N_FOLLOWERS_TAG_NAME, TWITTER_N_STATUSES_TAG_NAME)
3131
32# This is the maximum requests that will be sent out at once by anything32# This is the maximum requests that will be sent out at once by anything
33# using a task.Cooperator. That's usually FluidDB, but it can also mean33# using a task.Cooperator. That's usually Fluidinfo, but it can also mean
34# this many requests going at once to Twitter to pick up user details.34# this many requests going at once to Twitter to pick up user details.
35MAX_SIMULTANEOUS_REQUESTS = 535MAX_SIMULTANEOUS_REQUESTS = 5
3636
@@ -109,19 +109,19 @@
109 pass109 pass
110110
111111
112class FluidDBParseError(Exception):112class FluidinfoParseError(Exception):
113 pass113 pass
114114
115115
116class FluidDBNonexistentAttribute(Exception):116class FluidinfoNonexistentAttribute(Exception):
117 pass117 pass
118118
119119
120class FluidDBPermissionDenied(Exception):120class FluidinfoPermissionDenied(Exception):
121 pass121 pass
122122
123123
124class FluidDBError(Exception):124class FluidinfoError(Exception):
125 pass125 pass
126126
127127
@@ -269,7 +269,7 @@
269 userJob.workToDo += (nFriendsToAdd * WORK_TO_CREATE_A_FRIEND)269 userJob.workToDo += (nFriendsToAdd * WORK_TO_CREATE_A_FRIEND)
270 start = time.time()270 start = time.time()
271271
272 # Create FluidDB objects for all the friends that we don't yet know272 # Create Fluidinfo objects for all the friends that we don't yet know
273 # about.273 # about.
274 jobs = makeCreateUserJobs(friendsToAdd)274 jobs = makeCreateUserJobs(friendsToAdd)
275 deferreds = []275 deferreds = []
@@ -419,10 +419,10 @@
419 log.msg('Query cache hit (size %d) for %r.' % (len(result), queryStr))419 log.msg('Query cache hit (size %d) for %r.' % (len(result), queryStr))
420 return defer.succeed(result)420 return defer.succeed(result)
421421
422_fluidDBErrors = {422_fluidinfoErrors = {
423 'TParseError': FluidDBParseError,423 'TParseError': FluidinfoParseError,
424 'TPathPermissionDenied': FluidDBPermissionDenied,424 'TPathPermissionDenied': FluidinfoPermissionDenied,
425 'TNonexistentAttribute': FluidDBNonexistentAttribute,425 'TNonexistentAttribute': FluidinfoNonexistentAttribute,
426 }426 }
427427
428428
@@ -430,23 +430,23 @@
430 fail.trap(error.Error)430 fail.trap(error.Error)
431 errorClass = fail.value.response_headers.get('x-fluiddb-error-class')431 errorClass = fail.value.response_headers.get('x-fluiddb-error-class')
432 if errorClass is None:432 if errorClass is None:
433 log.msg('No Fluiddb error class header! Query %r got HTTP status %s' %433 log.msg('No Fluidinfo error class header! '
434 (query, fail.value.status))434 'Query %r got HTTP status %s' % (query, fail.value.status))
435 raise FluidDBError()435 raise FluidinfoError()
436 else:436 else:
437 errorClass = errorClass[0]437 errorClass = errorClass[0]
438438
439 try:439 try:
440 log.msg('Error Class %r' % (errorClass,))440 log.msg('Error Class %r' % (errorClass,))
441 raise _fluidDBErrors[errorClass]()441 raise _fluidinfoErrors[errorClass]()
442 except KeyError:442 except KeyError:
443 log.msg('Unhandled Fluiddb error class %r Query %r got '443 log.msg('Unhandled Fluidinfo error class %r Query %r got '
444 'HTTP status %s' %444 'HTTP status %s' %
445 (errorClass, query, fail.value.status))445 (errorClass, query, fail.value.status))
446 raise FluidDBError()446 raise FluidinfoError()
447447
448448
449def fluidDBQuery(endpoint, query):449def fluidinfoQuery(endpoint, query):
450 d = Object.query(endpoint, query)450 d = Object.query(endpoint, query)
451 d.addCallback(lambda results: [r.uuid for r in results])451 d.addCallback(lambda results: [r.uuid for r in results])
452 d.addErrback(_queryErr, query)452 d.addErrback(_queryErr, query)
@@ -511,7 +511,7 @@
511 d = cache.oidUidScreennameCache.objectByUid(511 d = cache.oidUidScreennameCache.objectByUid(
512 uid, userNameCache=cache.userCache)512 uid, userNameCache=cache.userCache)
513 d.addCallback(lambda o: o.set(endpoint, tag, None))513 d.addCallback(lambda o: o.set(endpoint, tag, None))
514 # The logged in user may not yet exist in FluidDB.514 # The logged in user may not yet exist in Fluidinfo.
515 d.addErrback(_ignoreHTTPStatus, http.NOT_FOUND)515 d.addErrback(_ignoreHTTPStatus, http.NOT_FOUND)
516 return d516 return d
517517
@@ -523,7 +523,7 @@
523 d = cache.oidUidScreennameCache.objectByUid(523 d = cache.oidUidScreennameCache.objectByUid(
524 uid, userNameCache=cache.userCache)524 uid, userNameCache=cache.userCache)
525 d.addCallback(lambda o: o.delete(endpoint, tag))525 d.addCallback(lambda o: o.delete(endpoint, tag))
526 # The logged in user may not yet exist in FluidDB.526 # The logged in user may not yet exist in Fluidinfo.
527 d.addErrback(_ignoreHTTPStatus, http.NOT_FOUND)527 d.addErrback(_ignoreHTTPStatus, http.NOT_FOUND)
528 return d528 return d
529529
530530
=== modified file 'tickery/oidcache.py'
--- tickery/oidcache.py 2011-06-16 16:10:07 +0000
+++ tickery/oidcache.py 2011-06-16 17:39:31 +0000
@@ -91,14 +91,14 @@
91 nResults = len(results)91 nResults = len(results)
92 if nResults == 0:92 if nResults == 0:
93 raise Exception(93 raise Exception(
94 'Screenname %r not known to FluidDB' % screenname)94 'Screenname %r not known to Fluidinfo' % screenname)
95 elif nResults == 1:95 elif nResults == 1:
96 objectId = results[0].uuid96 objectId = results[0].uuid
97 self.add(objectId, screenname=screenname)97 self.add(objectId, screenname=screenname)
98 return objectId98 return objectId
99 else:99 else:
100 log.err('ERROR: Twitter screenname %r found %d times '100 log.err('ERROR: Twitter screenname %r found %d times '
101 'in FluidDB! ObjectIds = %r' %101 'in Fluidinfo! ObjectIds = %r' %
102 (screenname, nResults, results))102 (screenname, nResults, results))
103 # Don't crash: just return the first object id found.103 # Don't crash: just return the first object id found.
104 return results[0]104 return results[0]
@@ -118,13 +118,14 @@
118 if nResults:118 if nResults:
119 if nResults > 1:119 if nResults > 1:
120 msg = ('User with Twitter id %d exists %d times '120 msg = ('User with Twitter id %d exists %d times '
121 'in FluidDB! Ignoring.' % (uid, nResults))121 'in Fluidinfo! Ignoring.' % (uid, nResults))
122 log.err(msg)122 log.err(msg)
123 raise Exception(msg)123 raise Exception(msg)
124 else:124 else:
125 o = results[0]125 o = results[0]
126 self.add(o.uuid, uid, screenname)126 self.add(o.uuid, uid, screenname)
127 log.msg('Found FluidDB object for Twitter user %d.' % uid)127 log.msg('Found Fluidinfo object for Twitter user %d.' %
128 uid)
128 else:129 else:
129 about = '%s:uid:%d' % (TWITTER_USERNAME, uid)130 about = '%s:uid:%d' % (TWITTER_USERNAME, uid)
130 o = yield Object.create(self.endpoint, about)131 o = yield Object.create(self.endpoint, about)
@@ -160,8 +161,8 @@
160 self.clean = False161 self.clean = False
161162
162 def objectIdsToUsers(self, objectIds, userCache):163 def objectIdsToUsers(self, objectIds, userCache):
163 '''Convert a list of FluidDB object ids to a 2-tuple, a list of164 '''Convert a list of Fluidinfo object ids to a 2-tuple, a list of
164 Twitter screennames and a list of any FluidDB object ids that did165 Twitter screennames and a list of any Fluidinfo object ids that did
165 not correspond to Twitter users.'''166 not correspond to Twitter users.'''
166 users = []167 users = []
167 ids = []168 ids = []
168169
=== modified file 'tickery/options.py'
--- tickery/options.py 2011-06-14 20:36:36 +0000
+++ tickery/options.py 2011-06-16 17:39:31 +0000
@@ -19,11 +19,11 @@
1919
20class EndpointOptions(usage.Options):20class EndpointOptions(usage.Options):
21 optParameters = [21 optParameters = [
22 ['endpoint', None, None, 'The FluidDB endpoint URL.'],22 ['endpoint', None, None, 'The Fluidinfo endpoint URL.'],
23 ]23 ]
24 optFlags = [24 optFlags = [
25 ['local', 'L', 'If True use the a local FluidDB'],25 ['local', 'L', 'If True use the a local Fluidinfo'],
26 ['sandbox', 'S', 'If True use the sandbox FluidDB'],26 ['sandbox', 'S', 'If True use the sandbox Fluidinfo'],
27 ]27 ]
2828
29 def postOptions(self):29 def postOptions(self):
@@ -41,7 +41,7 @@
41 else:41 else:
42 endpointURL = defaults.SANDBOX_ENDPOINT42 endpointURL = defaults.SANDBOX_ENDPOINT
43 else:43 else:
44 endpointURL = defaults.FLUIDDB_ENDPOINT44 endpointURL = defaults.FLUIDINFO_ENDPOINT
45 if not endpointURL.endswith('/'):45 if not endpointURL.endswith('/'):
46 endpointURL += '/'46 endpointURL += '/'
47 self['endpoint'] = endpointURL47 self['endpoint'] = endpointURL
4848
=== modified file 'tickery/query.py'
--- tickery/query.py 2011-06-16 16:10:07 +0000
+++ tickery/query.py 2011-06-16 17:39:31 +0000
@@ -189,7 +189,7 @@
189189
190190
191def queryTreeToString(queryTree, fdbUsername, fdbNamespace):191def queryTreeToString(queryTree, fdbUsername, fdbNamespace):
192 """Return a query string that can be sent to FluidDB. Note that we turn192 """Return a query string that can be sent to Fluidinfo. Note that we turn
193 all screennames into lowercase in the complete tag names. That's193 all screennames into lowercase in the complete tag names. That's
194 because that's the way we create the tags.194 because that's the way we create the tags.
195 """195 """
196196
=== modified file 'tickery/service.py'
--- tickery/service.py 2011-06-16 16:10:07 +0000
+++ tickery/service.py 2011-06-16 17:39:31 +0000
@@ -56,7 +56,7 @@
56 [self.cache.adderCache.added(s) for s in screennames]}56 [self.cache.adderCache.added(s) for s in screennames]}
5757
58 def _objectIdsToUsers(self, (users, ids)):58 def _objectIdsToUsers(self, (users, ids)):
59 '''Convert a list of FluidDB object ids to a JSON RPC result dict59 '''Convert a list of Fluidinfo object ids to a JSON RPC result dict
60 containing a list of Twitter screennames.'''60 containing a list of Twitter screennames.'''
61 if ids:61 if ids:
62 log.err('Unexpected object ids matched query: %r' % (ids,))62 log.err('Unexpected object ids matched query: %r' % (ids,))
@@ -158,13 +158,13 @@
158 d.addErrback(log.err)158 d.addErrback(log.err)
159 return d159 return d
160160
161 def _fluidDBError(self, fail, query):161 def _fluidinfoError(self, fail, query):
162 err = fail.check(ftwitter.FluidDBParseError,162 err = fail.check(ftwitter.FluidinfoParseError,
163 ftwitter.FluidDBError,163 ftwitter.FluidinfoError,
164 ftwitter.FluidDBNonexistentAttribute,164 ftwitter.FluidinfoNonexistentAttribute,
165 ftwitter.FluidDBPermissionDenied)165 ftwitter.FluidinfoPermissionDenied)
166 if err is None:166 if err is None:
167 log.msg('Error on FluidDB query %r:' % query)167 log.msg('Error on Fluidinfo query %r:' % query)
168 log.err(fail)168 log.err(fail)
169 errorClass = 'unknown'169 errorClass = 'unknown'
170 else:170 else:
@@ -176,7 +176,7 @@
176 }176 }
177 }177 }
178178
179 def jsonrpc_fluidDBQuery(self, cookie, tabName, query):179 def jsonrpc_fluidinfoQuery(self, cookie, tabName, query):
180 try:180 try:
181 data = self.cache.cookieCache[cookie]181 data = self.cache.cookieCache[cookie]
182 except KeyError:182 except KeyError:
@@ -185,14 +185,14 @@
185 screenname = data[0]['screen_name']185 screenname = data[0]['screen_name']
186 log.msg('QUERY: tab=%s user=%r query=%r' % (186 log.msg('QUERY: tab=%s user=%r query=%r' % (
187 tabName, screenname, query))187 tabName, screenname, query))
188 d = ftwitter.fluidDBQuery(self.endpoint, query)188 d = ftwitter.fluidinfoQuery(self.endpoint, query)
189 d.addCallback(self._checkTooManyResults)189 d.addCallback(self._checkTooManyResults)
190 d.addCallback(190 d.addCallback(
191 self.cache.oidUidScreennameCache.objectIdsToUsers,191 self.cache.oidUidScreennameCache.objectIdsToUsers,
192 self.cache.userCache)192 self.cache.userCache)
193 d.addCallback(self._objectIdsToUsersWherePossible)193 d.addCallback(self._objectIdsToUsersWherePossible)
194 d.addErrback(self._screennameListError) # Catches TooManyResults194 d.addErrback(self._screennameListError) # Catches TooManyResults
195 d.addErrback(self._fluidDBError, query)195 d.addErrback(self._fluidinfoError, query)
196 return d196 return d
197197
198 def _loginRedirectURL(self, URL):198 def _loginRedirectURL(self, URL):
199199
=== modified file 'tickery/utils.py'
--- tickery/utils.py 2011-06-16 16:10:07 +0000
+++ tickery/utils.py 2011-06-16 17:39:31 +0000
@@ -19,18 +19,18 @@
19from txfluiddb.client import _HasPath19from txfluiddb.client import _HasPath
2020
2121
22def fluidDBRootPassword():22def fluidinfoRootPassword():
23 VAR = 'FLUIDDB_ROOT_PASSWORD'23 VAR = 'FLUIDINFO_ROOT_PASSWORD'
24 try:24 try:
25 return os.environ[VAR]25 return os.environ[VAR]
26 except KeyError:26 except KeyError:
27 raise usage.UsageError('You must set a %s environment variable.' % VAR)27 raise usage.UsageError('You must set a %s environment variable.' % VAR)
2828
2929
30class FluidDBOptions(usage.Options):30class FluidinfoOptions(usage.Options):
31 optParameters = [31 optParameters = [
32 ['fluiddb-user', None, 'fluiddb', "The system user's name."],32 ['fluidinfo-user', None, 'fluidinfo', "The system user's name."],
33 ['fluiddb-password', None, None, "The system user's password."],33 ['fluidinfo-password', None, None, "The system user's password."],
34 ]34 ]
3535
3636
3737
=== modified file 'tickery/www/about.py'
--- tickery/www/about.py 2011-06-16 16:10:07 +0000
+++ tickery/www/about.py 2011-06-16 17:39:31 +0000
@@ -34,27 +34,27 @@
3434
35But there's a more important reason why we built Tickery: to35But there's a more important reason why we built Tickery: to
36illustrate the flexibility and potential of36illustrate the flexibility and potential of
37<a href=\"http://fluidinfo.com/fluiddb\">FluidDB</a>,37<a href=\"http://fluidinfo.com/fluiddb\">Fluidinfo</a>,
38the underlying database.38the underlying database.
3939
40</p>40</p>
4141
42<p>42<p>
4343
44FluidDB is quite different from traditional databases. What distinguishes44Fluidinfo is quite different from traditional databases. What distinguishes
45it most is its open approach to information control: anyone, or any45it most is its open approach to information control: anyone, or any
46application, is always permitted to add information to any object in46application, is always permitted to add information to any object in
47FluidDB.47Fluidinfo.
4848
49</p>49</p>
5050
51<p>51<p>
5252
53This means that <em>Tickery is completely open.</em> The FluidDB objects53This means that <em>Tickery is completely open.</em> The Fluidinfo objects
54that Tickery uses to hold information about Twitter users are yours to play54that Tickery uses to hold information about Twitter users are yours to play
55with too. You can contribute additional information about Twitter users,55with too. You can contribute additional information about Twitter users,
56and can query on it (using the advanced tab). You can also build your own56and can query on it (using the advanced tab). You can also build your own
57applications that use FluidDB, exactly as Tickery does. Those applications57applications that use Fluidinfo, exactly as Tickery does. Those applications
58can search using the tags that Tickery has added, or on anything that you58can search using the tags that Tickery has added, or on anything that you
59or others might add.59or others might add.
6060
@@ -63,9 +63,9 @@
63<p>63<p>
6464
6565
66With FluidDB, no one&mdash;not even you&mdash;has to anticipate your future66With Fluidinfo, no one&mdash;not even you&mdash;has to anticipate your future
67needs, and you never have to ask for permission to add new information. To67needs, and you never have to ask for permission to add new information. To
68complement this openness at the highest-level, FluidDB has an underlying68complement this openness at the highest-level, Fluidinfo has an underlying
69identity and permissions system that ensures existing data can only be69identity and permissions system that ensures existing data can only be
70accessed by the people and applications you choose.70accessed by the people and applications you choose.
7171
@@ -74,49 +74,49 @@
74<p>74<p>
7575
76At Fluidinfo, we believe it will one day be <em>much</em> easier to work76At Fluidinfo, we believe it will one day be <em>much</em> easier to work
77with information. We've built FluidDB to show you what we think the future77with information. We've built Fluidinfo to show you what we think the future
78will look like. It's a future in which we'll work with information in more78will look like. It's a future in which we'll work with information in more
79flexible ways, and with data that is79flexible ways, and with data that is
80<a href=\"http://blogs.fluidinfo.com/fluidDB/2009/08/24/\80<a href=\"http://blogs.fluidinfo.com/fluidinfo/2009/08/24/\
81truly-social-data/\">truly social</a>.81truly-social-data/\">truly social</a>.
8282
83</p>83</p>
8484
85<h3>Next</h3>85<h3>Next</h3>
8686
87For details on how Tickery uses FluidDB to hold information on Twitter87For details on how Tickery uses Fluidinfo to hold information on Twitter
88users, read the help popup on the Advanced tab. To learn more about how88users, read the help popup on the Advanced tab. To learn more about how
89FluidDB works, a good starting place is the <a89Fluidinfo works, a good starting place is the <a
90href=\"http://doc.fluidinfo.com/fluidDB/\">high-level description</a>.90href=\"http://doc.fluidinfo.com/fluidDB/\">high-level description</a>.
9191
92To learn more about how we think about information, and what we're aiming92To learn more about how we think about information, and what we're aiming
93at with FluidDB, have a look at the <a93at with Fluidinfo, have a look at the <a
94href=\"http://blogs.fluidinfo.com/fluidDB\">FluidDB blog</a>. In particular,94href=\"http://blogs.fluidinfo.com/fluidinfo\">Fluidinfo blog</a>. In
95the following articles provide a good set of viewpoints:95particular, following articles provide a good set of viewpoints:
9696
97<a href=\"http://blogs.fluidinfo.com/fluidDB/2009/08/24/\97<a href=\"http://blogs.fluidinfo.com/fluidinfo/2009/08/24/\
98truly-social-data/\">Truly Social Data</a>,98truly-social-data/\">Truly Social Data</a>,
99<a href=\"http://blogs.fluidinfo.com/fluidDB/2009/08/25/\99<a href=\"http://blogs.fluidinfo.com/fluidinfo/2009/08/25/\
100kaleidoscope-10-takes-on-fluiddb/\">Kaleidoscope: 10 Takes on FluidDB</a>,100kaleidoscope-10-takes-on-fluiddb/\">Kaleidoscope: 10 Takes on Fluidinfo</a>,
101<a href=\"http://blogs.fluidinfo.com/fluidDB/2009/08/28/\101<a href=\"http://blogs.fluidinfo.com/fluidinfo/2009/08/28/\
102information-naturally/\">Information. Naturally.</a>,102information-naturally/\">Information. Naturally.</a>,
103<a href=\"http://blogs.fluidinfo.com/fluidDB/2009/10/03/\103<a href=\"http://blogs.fluidinfo.com/fluidinfo/2009/10/03/\
104fluiddb-as-a-universal-metadata-engine/\">FluidDB as a Universal Metadata104fluiddb-as-a-universal-metadata-engine/\">Fluidinfo as a Universal Metadata
105Engine</a>,105Engine</a>,
106<a href=\"http://blogs.fluidinfo.com/fluidDB/2009/11/12/\106<a href=\"http://blogs.fluidinfo.com/fluidinfo/2009/11/12/\
107why-are-post-it-notes-sticky/\">Why are Post-It Notes Sticky?</a>,107why-are-post-it-notes-sticky/\">Why are Post-It Notes Sticky?</a>,
108and108and
109<a href=\"http://blogs.fluidinfo.com/fluidDB/2009/12/01/\109<a href=\"http://blogs.fluidinfo.com/fluidinfo/2009/12/01/\
110putting-metadata-onto-tweets-with-fluiddb/\">Putting Metadata onto Tweets110putting-metadata-onto-tweets-with-fluiddb/\">Putting Metadata onto Tweets
111with FluidDB</a>.111with Fluidinfo</a>.
112112
113<p>113<p>
114114
115If you'd like to use the FluidDB API, please <a115If you'd like to use the Fluidinfo API, please <a
116href=\"http://fluidinfo.com/accounts/new\">reserve a FluidDB username</a>116href=\"http://fluidinfo.com/accounts/new\">reserve a Fluidinfo username</a>
117and then <a href=\"mailto:api@fluidinfo.com\">send us mail</a> to get a117and then <a href=\"mailto:api@fluidinfo.com\">send us mail</a> to get a
118password. Note that FluidDB is still in an early <a118password. Note that Fluidinfo is still in an early <a
119href=\"http://blogs.fluidinfo.com/fluidDB/2009/08/17/\119href=\"http://blogs.fluidinfo.com/fluidinfo/2009/08/17/\
120a-private-alpha-launch/\">private alpha</a> phase.120a-private-alpha-launch/\">private alpha</a> phase.
121121
122</p>122</p>
123123
=== modified file 'tickery/www/advanced.py'
--- tickery/www/advanced.py 2011-06-16 16:10:07 +0000
+++ tickery/www/advanced.py 2011-06-16 17:39:31 +0000
@@ -19,34 +19,34 @@
19from pyjamas.ui.HTML import HTML19from pyjamas.ui.HTML import HTML
2020
21_instructions = """21_instructions = """
22<h3 class=\"huh-h3\">Exposing FluidDB</h3>22<h3 class=\"huh-h3\">Exposing Fluidinfo</h3>
2323
24<p>24<p>
2525
26Tickery stores information on Twitter users in26Tickery stores information on Twitter users in
27<a href=\"http://fluidinfo.com/fluiddb\">FluidDB</a>.27<a href=\"http://fluidinfo.com/fluiddb\">Fluidinfo</a>.
2828
29The simple and intermediate tabs just provide convenient&mdash;but also29The simple and intermediate tabs just provide convenient&mdash;but also
30constrained&mdash;query interfaces to FluidDB. The advanced tab takes the30constrained&mdash;query interfaces to Fluidinfo. The advanced tab takes the
31gloves off, letting you interact with <a31gloves off, letting you interact with <a
32href=\"http://fluidinfo.com/fluiddb\">FluidDB</a> using its native query32href=\"http://fluidinfo.com/fluiddb\">Fluidinfo</a> using its native query
33language. Though the native query language is a little more verbose, there33language. Though the native query language is a little more verbose, there
34are <span class=\"instructions-em\">many</span> interesting possibilities34are <span class=\"instructions-em\">many</span> interesting possibilities
35when you can search on anything you like.35when you can search on anything you like.
3636
37</p><p>37</p><p>
3838
39Why FluidDB and not just a traditional database? Part of the answer is that39Why Fluidinfo and not just a traditional database? Part of the answer is that
40FluidDB allows anyone to add new data. You can query on that too, right40Fluidinfo allows anyone to add new data. You can query on that too, right
41here on the advanced tab.41here on the advanced tab.
4242
43</p>43</p>
4444
45<h3 class=\"huh-h3\">The FluidDB query language</h3>45<h3 class=\"huh-h3\">The Fluidinfo query language</h3>
4646
47<p>47<p>
4848
49FluidDB stores a tagged object for each Twitter user that Tickery knows49Fluidinfo stores a tagged object for each Twitter user that Tickery knows
50about. The query language is designed to match objects based on the50about. The query language is designed to match objects based on the
51presence of tags, and their values. Let's first see what happens behind51presence of tags, and their values. Let's first see what happens behind
52the scenes on the simple and intermediate tabs.52the scenes on the simple and intermediate tabs.
@@ -61,23 +61,23 @@
61%(friends)s/%(simpleUser2)s\">has %(friends)s/%(simpleUser1)s and \61%(friends)s/%(simpleUser2)s\">has %(friends)s/%(simpleUser1)s and \
62has %(friends)s/%(simpleUser2)s</a>62has %(friends)s/%(simpleUser2)s</a>
6363
64being sent to FluidDB. I.e., Tickery asks FluidDB for all objects that have64being sent to Fluidinfo. I.e., Tickery asks Fluidinfo for all objects that have
65a <span class=\"example\">%(friends)s/%(simpleUser1)s</span> tag and also a65a <span class=\"example\">%(friends)s/%(simpleUser1)s</span> tag and also a
66<span class=\"example\">%(friends)s/%(simpleUser2)s</span> tag.66<span class=\"example\">%(friends)s/%(simpleUser2)s</span> tag.
6767
68</p><p>68</p><p>
6969
70On the intermediate tab, queries are also translated directly into FluidDB70On the intermediate tab, queries are also translated directly into Fluidinfo
71queries. For example, the query71queries. For example, the query
7272
73<a href=\"%(intq)sbiz+except+ev\">biz except ev</a>73<a href=\"%(intq)sbiz+except+ev\">biz except ev</a>
7474
75results in the FluidDB query:75results in the Fluidinfo query:
7676
77<a href=\"%(advancedq)shas+%(friends)s/biz+except+has+%(friends)s/ev\">\77<a href=\"%(advancedq)shas+%(friends)s/biz+except+has+%(friends)s/ev\">\
78has %(friends)s/biz except has %(friends)s/ev</a>.78has %(friends)s/biz except has %(friends)s/ev</a>.
7979
80That is, Tickery asks FluidDB for all objects that have a80That is, Tickery asks Fluidinfo for all objects that have a
81<span class=\"example\">%(friends)s/biz</span>81<span class=\"example\">%(friends)s/biz</span>
82tag,82tag,
83<span class=\"example\">except</span>83<span class=\"example\">except</span>
@@ -95,7 +95,7 @@
9595
96<p>96<p>
9797
98The FluidDB objects matching the above queries all also have <span98The Fluidinfo objects matching the above queries all also have <span
99class=\"example\">twitter.com/users/screen_name</span> and <span99class=\"example\">twitter.com/users/screen_name</span> and <span
100class=\"example\">twitter.com/users/id</span> tags, which Tickery uses to100class=\"example\">twitter.com/users/id</span> tags, which Tickery uses to
101help display its results.101help display its results.
@@ -110,7 +110,7 @@
110110
111<a href='%(advancedq)stwitter.com/users/screen_name+=+\"%(simpleUser1)s\"'>\111<a href='%(advancedq)stwitter.com/users/screen_name+=+\"%(simpleUser1)s\"'>\
112twitter.com/users/screen_name = \"%(simpleUser1)s\"</a>.112twitter.com/users/screen_name = \"%(simpleUser1)s\"</a>.
113FluidDB has some other Twitter tags on its objects too. For example, you113Fluidinfo has some other Twitter tags on its objects too. For example, you
114can query114can query
115115
116<a href='%(advancedq)stwitter.com/users/followers_count+>+100000'>\116<a href='%(advancedq)stwitter.com/users/followers_count+>+100000'>\
@@ -126,11 +126,11 @@
126126
127</p><p>127</p><p>
128128
129Because FluidDB objects can be added to by anyone, we can query on tags129Because Fluidinfo objects can be added to by anyone, we can query on tags
130that were added by other people and that have nothing to do with130that were added by other people and that have nothing to do with
131Twitter. For example, my user name in both FluidDB and Twitter is <span131Twitter. For example, my user name in both Fluidinfo and Twitter is <span
132class=\"example\">terrycojones</span>. I've added a <span132class=\"example\">terrycojones</span>. I've added a <span
133class=\"example\">terrycojones/met</span> tag to FluidDB's objects for133class=\"example\">terrycojones/met</span> tag to Fluidinfo's objects for
134Twitter people that I've met in person. So the query134Twitter people that I've met in person. So the query
135135
136<a href='%(advancedq)shas+%(friends)s/terrycojones+and+has+terrycojones/met'>\136<a href='%(advancedq)shas+%(friends)s/terrycojones+and+has+terrycojones/met'>\
@@ -148,7 +148,7 @@
148148
149The possibilities here are literally endless. They get interesting149The possibilities here are literally endless. They get interesting
150rapidly, even with just a couple of extra tags in the mix. For example,150rapidly, even with just a couple of extra tags in the mix. For example,
151the other FluidDB programmer, Esteve, has also added <span151the other Fluidinfo programmer, Esteve, has also added <span
152class=\"example\">esteve/met</span> tags to the people he follows and has152class=\"example\">esteve/met</span> tags to the people he follows and has
153met. The query153met. The query
154154
@@ -168,7 +168,7 @@
168should introduce each other to. Imagine the additional richness we could168should introduce each other to. Imagine the additional richness we could
169extract from Twitter if someone wrote e.g., a Firefox extension that simply169extract from Twitter if someone wrote e.g., a Firefox extension that simply
170let you click to indicate which of the people you follow you've also met.170let you click to indicate which of the people you follow you've also met.
171And that's just one additional tag in FluidDB. It's easy to dream up many171And that's just one additional tag in Fluidinfo. It's easy to dream up many
172others.172others.
173173
174</p>174</p>
@@ -179,14 +179,14 @@
179179
180The best part of all this is that you can play too.180The best part of all this is that you can play too.
181181
182The most important thing to understand about the underlying FluidDB objects182The most important thing to understand about the underlying Fluidinfo
183is that while their tags have owners and permissions, the objects183objects is that while their tags have owners and permissions, the objects
184themselves do not. So you can use the FluidDB API184themselves do not. So you can use the Fluidinfo API
185185
186(<a href=\"http://doc.fluidinfo.com/fluidDB/index.html\">description</a>,186(<a href=\"http://doc.fluidinfo.com/fluidDB/index.html\">description</a>,
187<a href=\"http://doc.fluidinfo.com/fluidDB/api/index.html\">details</a>)187<a href=\"http://doc.fluidinfo.com/fluidDB/api/index.html\">details</a>)
188188
189to add any tags you like to FluidDB objects, <span189to add any tags you like to Fluidinfo objects, <span
190class=\"instructions-em\">including the objects that Tickery has190class=\"instructions-em\">including the objects that Tickery has
191tagged</span>, and you can query on them in any combination.191tagged</span>, and you can query on them in any combination.
192192
@@ -194,11 +194,11 @@
194194
195<p>195<p>
196196
197If you'd like to use the FluidDB API, please <a197If you'd like to use the Fluidinfo API, please <a
198href=\"http://fluidinfo.com/accounts/new\">reserve a FluidDB username</a>198href=\"http://fluidinfo.com/accounts/new\">reserve a Fluidinfo username</a>
199and then <a href=\"mailto:api@fluidinfo.com\">send us mail</a> to get a199and then <a href=\"mailto:api@fluidinfo.com\">send us mail</a> to get a
200password. Note that FluidDB is still in an early <a200password. Note that Fluidinfo is still in an early <a
201href=\"http://blogs.fluidinfo.com/fluidDB/2009/08/17/\201href=\"http://blogs.fluidinfo.com/fluidinfo/2009/08/17/\
202a-private-alpha-launch/\">private alpha</a> phase.202a-private-alpha-launch/\">private alpha</a> phase.
203203
204</p>204</p>
@@ -222,8 +222,8 @@
222 {'tw': 'twitter.com', 'fr': 'friends'})222 {'tw': 'twitter.com', 'fr': 'friends'})
223223
224 def __init__(self, topPanel):224 def __init__(self, topPanel):
225 self.goButtonRemoteMethod = 'fluidDBQuery'225 self.goButtonRemoteMethod = 'fluidinfoQuery'
226 self.instructions = HTML(_instructions)226 self.instructions = HTML(_instructions)
227 self.instructionsTitle = ('The FluidDB query language '227 self.instructionsTitle = ('The Fluidinfo query language '
228 '& the advanced tab')228 '& the advanced tab')
229 LargeQueryTab.__init__(self, topPanel)229 LargeQueryTab.__init__(self, topPanel)
230230
=== modified file 'tickery/www/banner.py'
--- tickery/www/banner.py 2011-06-16 16:10:07 +0000
+++ tickery/www/banner.py 2011-06-16 17:39:31 +0000
@@ -29,7 +29,7 @@
29 self.add(Image('tickery.png', StyleName='banner-image'))29 self.add(Image('tickery.png', StyleName='banner-image'))
30 strapline = HTML(30 strapline = HTML(
31 '''Explore <a href="http://twitter.com">Twitter</a> with31 '''Explore <a href="http://twitter.com">Twitter</a> with
32 <a href="http://fluidinfo.com/fluiddb">FluidDB</a>''',32 <a href="http://fluidinfo.com">Fluidinfo</a>''',
33 StyleName='strapline')33 StyleName='strapline')
34 self.add(strapline)34 self.add(strapline)
3535
3636
=== modified file 'tickery/www/defaults.py'
--- tickery/www/defaults.py 2011-06-16 16:10:07 +0000
+++ tickery/www/defaults.py 2011-06-16 17:39:31 +0000
@@ -25,7 +25,7 @@
2525
26OAUTH_COOKIE = 'tickery-oauth'26OAUTH_COOKIE = 'tickery-oauth'
2727
28TWITTER_PASSWORD_VAR = 'FLUIDDB_TWITTER_PASSWORD'28TWITTER_PASSWORD_VAR = 'FLUIDINFO_TWITTER_PASSWORD'
29TWITTER_USERNAME = u'twitter.com'29TWITTER_USERNAME = u'twitter.com'
30TWITTER_NAME = u'Twitter Inc.'30TWITTER_NAME = u'Twitter Inc.'
31TWITTER_EMAIL = u'info@fluidinfo.com'31TWITTER_EMAIL = u'info@fluidinfo.com'
@@ -45,7 +45,7 @@
45TWITTER_N_STATUSES_TAG_NAME = u'statuses_count'45TWITTER_N_STATUSES_TAG_NAME = u'statuses_count'
46# TWITTER_LOCATION_TAG_NAME = u'location'46# TWITTER_LOCATION_TAG_NAME = u'location'
4747
48FLUIDDB_ENDPOINT = 'http://fluiddb.fluidinfo.com/'48FLUIDINFO_ENDPOINT = 'http://fluiddb.fluidinfo.com/'
49SANDBOX_ENDPOINT = 'http://sandbox.fluidinfo.com/'49SANDBOX_ENDPOINT = 'http://sandbox.fluidinfo.com/'
50LOCAL_ENDPOINT = 'http://localhost:8080/'50LOCAL_ENDPOINT = 'http://localhost:8080/'
5151
5252
=== modified file 'tickery/www/public/index.html'
--- tickery/www/public/index.html 2010-07-20 09:47:02 +0000
+++ tickery/www/public/index.html 2011-06-16 17:39:31 +0000
@@ -2,7 +2,7 @@
2 <head>2 <head>
3 <meta name="pygwt:module" content="index">3 <meta name="pygwt:module" content="index">
4 <link rel="stylesheet" href="index.css">4 <link rel="stylesheet" href="index.css">
5 <title>Tickery - Explore Twitter with FluidDB</title>5 <title>Tickery - Explore Twitter with Fluidinfo</title>
6 </head>6 </head>
7 <body bgcolor="white">7 <body bgcolor="white">
8 <script language="javascript" src="bootstrap.js"></script>8 <script language="javascript" src="bootstrap.js"></script>
99
=== modified file 'tickery/www/results.py'
--- tickery/www/results.py 2011-06-16 16:10:07 +0000
+++ tickery/www/results.py 2011-06-16 17:39:31 +0000
@@ -59,7 +59,7 @@
59 objectIds = objectIds[:5]59 objectIds = objectIds[:5]
60 else:60 else:
61 plural1, plural2 = '', 'es'61 plural1, plural2 = '', 'es'
62 title = '%s FluidDB object id%s match%s%s' % (62 title = '%s Fluidinfo object id%s match%s%s' % (
63 nObjectIds, plural1, plural2, showing)63 nObjectIds, plural1, plural2, showing)
64 text = '<br/>'.join(objectIds)64 text = '<br/>'.join(objectIds)
65 self.sender.results.add(HTML(65 self.sender.results.add(HTML(
6666
=== modified file 'tickery/www/server.py'
--- tickery/www/server.py 2010-07-20 09:47:02 +0000
+++ tickery/www/server.py 2011-06-16 17:39:31 +0000
@@ -19,5 +19,5 @@
19 def __init__(self):19 def __init__(self):
20 JSONProxy.__init__(self, '/tickery',20 JSONProxy.__init__(self, '/tickery',
21 ['nUsers', 'spideredScreennames', 'friendOf', 'intermediateQuery',21 ['nUsers', 'spideredScreennames', 'friendOf', 'intermediateQuery',
22 'fluidDBQuery', 'simpleTweet', 'tweet', 'login', 'logout',22 'fluidinfoQuery', 'simpleTweet', 'tweet', 'login', 'logout',
23 'screenameFromCookie', 'friendsIds', 'follow', 'unfollow'])23 'screenameFromCookie', 'friendsIds', 'follow', 'unfollow'])
2424
=== modified file 'tickery/www/tickerytab.py'
--- tickery/www/tickerytab.py 2011-06-16 16:10:07 +0000
+++ tickery/www/tickerytab.py 2011-06-16 17:39:31 +0000
@@ -56,7 +56,7 @@
56 """Explore sets of Twitter friends by querying on their user names""",56 """Explore sets of Twitter friends by querying on their user names""",
5757
58 'advanced':58 'advanced':
59 """Query Twitter friends & more with the full FluidDB query language""",59 """Query Twitter friends & more with the full Fluidinfo query language""",
60 }60 }
6161
62HELP_TEXT = 'huh?'62HELP_TEXT = 'huh?'

Subscribers

People subscribed via source and target branches

to all changes: