
Snapkite Engine gives you filtered stream of photos posted publicly on Twitter.
It can do 2 (either or both) things with those photos:
Public stream of photos provided by Twitter contains explicit and adult content. You can filter out this content to an extent, but you can't guarantee that it's 100% filtered.
git clone https://github.com/snapkite/snapkite.gitcd snapkite-enginenpm installcp example.config.json config.jsonconfig.jsonconfig.jsonYou can configure Snapkite Engine by editing config.json.
application.pushTweetsSend tweets to client?
Expects true or false.
application.storeTweetsStore tweets in a MongoDB collection?
Expects true or false.
application.pushKeywordsSend keyword stats to client?
Expects true or false.
application.trackKeywordsWhich keywords should we ask Twitter to track for us?
Expects a string of keywords separated by a single whitespace or comma, e.g.: selfie london or selfie,london
Read this for more details: https://dev.twitter.com/streaming/overview/request-parameters#track
application.excludeKeywordsWhich keywords should be ignored?
Expects a string of keywords separated by a comma, e.g.: exclude,these,keywords
application.filtersList of Snapkite filters that this application should use. You can find the list of all available filters here.
application.twitter.apiTwitter API keys that Twitter provides you with. You can find them here.
application.databaseMongoDB connection configuration.
application.socketSocket configuration.
Everything you need to know about Snapkite filters.
mongo shell and create database:use snapkite;
3. Create capped tweet collection, 100MB in size, with maximum number of documents of 5000:
javascript
db.createCollection('tweet', {capped: true, size: 100000000, max: 5000});
Read more about capped collections in MongoDB: http://docs.mongodb.org/manual/core/capped-collections/
Create keyword collection:
javascript
db.createCollection('keyword');
Insert the only document needed:
javascript
db.keyword.insert({ data: {} });
Here is the list of helpful mongo shell commands.
db.tweet.count();
tweet collection statsdb.tweet.stats();
db.tweet.find().sort({_id:-1}).limit(5).pretty();
db.keyword.findOne().data;
Object.keys(db.keyword.findOne().data).sort();
tweet collectiondb.tweet.drop();
snapkite databaseuse snapkite;
db.drop();
npm start
Snapkite is released under the MIT license.
This software comes with NO WARRANTY, expressed or implied.
$ claude mcp add snapkite-engine \
-- python -m otcore.mcp_server <graph>