Giter Club home page Giter Club logo

jetwick's Introduction

Jetwick - Open and Personalized Twitter Search

License

The software stands under Apache 2 License and comes with NO WARRANTY

Why Jetwick?

Real time vs. Relevance

I developed jetwick to get a better twitter search - more relevant tweets. Twitter is near perfect in delivering real time search results. In contrast to this is Jetwick trying to be nice at relevance! Jetwick lets you filter away spam, duplicates and more. One additional simple way to avoid noise is: to sort a result against retweets!

But why personalized twitter search?

Login and you'll get two benefits.

I wanted to be able to stay days away from twitter - spending not my whole time reading news. But when I come back to the 'news-world' I wanted to get important news about my special topics. With relaxed saved searches you can save any search (e.g. even sort against retweets) and jetwick will automatically grab all tweets with your searched keywords on twitter when you are away.

Another benefit of using jetwick is the possibility to search your friends. With all the jetwicked features: filter against language, translate, sort against retweets etc. In a later version of jetwick it is possible to search any (previously logged in) users' friend-tweets!

Bookmarking

I am using twitter as a bookmarking service and need to search my account often. With twitter this is a pain - with jetwick it's just a click.

Demo

Sorry, no live demo anymore. But for more details and a video take a look at this site

Problems

Report issues here: https://github.com/karussell/Jetwick/issues

Developers

My blog posts about jetwick or twitter: http://karussell.wordpress.com/category/twitter/

Installation setup: https://github.com/karussell/Jetwick/wiki/Installation

Please let me know if you have problems installing jetwick.

jetwick's People

Contributors

karussell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jetwick's Issues

More Realtime and Scalable

Instead pure solr use solandra or even replace solr with elasticsearch to get (near) realtime characteristics and a scalable solution which shards automagically

Build failure in netbeans for jdk1.7


BUILD FAILURE

Total time: 3.544s
Finished at: Wed May 23 16:36:24 EEST 2012

Final Memory: 11M/52M

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project jetwick: Compilation failure: Compilation failure:
C:\Users\serafettin.bilge.SAGLIK\Desktop\karussell-Jetwick-7e14868\src\main\java\de\jetwick\tw\TwitterSearch.java:[221,20] error: type ResponseList does not take parameters

C:\Users\serafettin.bilge.SAGLIK\Desktop\karussell-Jetwick-7e14868\src\main\java\de\jetwick\tw\TwitterSearch.java:[311,24] error: type ResponseList does not take parameters

C:\Users\serafettin.bilge.SAGLIK\Desktop\karussell-Jetwick-7e14868\src\main\java\de\jetwick\tw\TwitterSearch.java:[438,42] error: incompatible types

could not parse error message: required: Tweet
found: Object
C:\Users\serafettin.bilge.SAGLIK\Desktop\karussell-Jetwick-7e14868\src\main\java\de\jetwick\tw\TwitterSearch.java:500: error: type ResponseList does not take parameters
ResponseList res = twitter.lookupUsers(arr);
^

C:\Users\serafettin.bilge.SAGLIK\Desktop\karussell-Jetwick-7e14868\src\main\java\de\jetwick\tw\TwitterSearch.java:[573,28] error: type ResponseList does not take parameters

C:\Users\serafettin.bilge.SAGLIK\Desktop\karussell-Jetwick-7e14868\src\main\java\de\jetwick\tw\TwitterSearch.java:[715,24] error: type ResponseList does not take parameters

C:\Users\serafettin.bilge.SAGLIK\Desktop\karussell-Jetwick-7e14868\src\main\java\de\jetwick\tw\Twitter4JTweet.java:[31,7] error: Twitter4JTweet is not abstract and does not override abstract method compareTo(Object) in Comparable

C:\Users\serafettin.bilge.SAGLIK\Desktop\karussell-Jetwick-7e14868\src\main\java\de\jetwick\tw\Twitter4JUser.java:[29,7] error: Twitter4JUser is not abstract and does not override abstract method compareTo(Object) in Comparable

C:\Users\serafettin.bilge.SAGLIK\Desktop\karussell-Jetwick-7e14868\src\main\java\de\jetwick\tw\Twitter4JUser.java:[203,4] error: method does not override or implement a method from a supertype
-> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:

Exception when clicking on one Saved Search

  2011-01-04 10:45:24,896 [TP-Processor6] ERROR org.apache.wicket.RequestCycle - org.apache.wicket.WicketRuntimeException: component savedSearches:filterValues:3:filterValueLink not found on page de.jetwick.ui.HomePage[id = 1], listener interface = [RequestListenerInterface name=ILinkListener, method=public abstract void org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()]
 org.apache.wicket.protocol.http.request.InvalidUrlException:      org.apache.wicket.WicketRuntimeException: component savedSearches:filterValues:3:filterValueLink not found on page de.jetwick.ui.HomePage[id = 1], listener interface = [RequestListenerInterface name=ILinkListener, method=public abstract void org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()]
at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:262)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:312)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:619)
 Caused by: org.apache.wicket.WicketRuntimeException: component savedSearches:filterValues:3:filterValueLink not found on page de.jetwick.ui.HomePage[id = 1], listener interface = [RequestListenerInterface name=ILinkListener, method=public abstract void org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()]
at org.apache.wicket.request.AbstractRequestCycleProcessor.resolveListenerInterfaceTarget(AbstractRequestCycleProcessor.java:426)
at org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:471)
at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:144)
... 20 more

Error with SQL server Plugin with river

PUT /_river/mytest_river/_meta
{
"type" : "jdbc",
"jdbc" : {
"driver":"com.microsoft.sqlserver.jdbc.SQLServerDriver",
"url":"jdbc:sqlserver://192.168.10.15\SQL2008ENT;databaseName=Domusidum",
"user":"dev2008",
"password":"12345678",
"sql":"SELECT * FROM POCCount(nolock)",
"poll":"10m",
"strategy" : "simple",
"index" : "myinventory",
"type" : "product"
}
}

return

{
"error": "MapperParsingException[failed to parse [jdbc.url]]; nested: JsonParseException[Unrecognized character escape 'S' (code 83)\n at [Source: [B@40399a55; line: 5, column: 40]]; ",
"status": 400
}

Difficulty installing Jetwick as a pluggin

I'm trying to use some of the filters you have written in an existing elastic search server. I tried installing it using:

plugin --install karussell/Jetwick

Which worked, but this installed it as a 'site' plugin.

I'm trying to reference the plugin in the following way when I create my index:

....
""filter"" : {
""jetwickfilter"": {
""type"" : ""de.jetwick.es.JetwickFilterFactory""
}
....

But this gives me a ClassNotFoundException for de.jetwick.es.JetwickFilterFactory. What is the best way to install the custom Jetwick filters for an Elastic Search instance?

Search Friends

To (quickly) search friends the followings things needs to be done:

  1. index the timeline of the logged-in user
  2. save all follower screenNames into the userIndex of every user
  3. use the saved screenNames to search only the follower-tweets (simply via boolean query of users)

Another possibilty would be to create one index (for the friend-tweets) per user ... this has some disadvantages: too many files/indices/folders and counting the retweets of every tweet in every index gets nearly impossible ...

but it will be faster for a large follower list

Login refused

Sometimes login will be refused and in the logs i can find:

2010-12-12 01:22:20,771 [TP-Processor617] INFO  de.jetwick.ui.HomePage - Received callback
2010-12-12 01:22:21,171 [TP-Processor617] ERROR de.jetwick.ui.HomePage - Error while receiving callback
401:Authentication credentials were missing or incorrect.
TwitterException{exceptionCode=[fa54b184-3c00ee1f], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.6}
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:308)
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:72)
    at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:103)
    at twitter4j.http.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:145)
    at twitter4j.http.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:163)
    at twitter4j.TwitterOAuthSupportBaseImpl.getOAuthAccessToken(TwitterOAuthSupportBaseImpl.java:156)
    at twitter4j.Twitter.getOAuthAccessToken(Twitter.java:54)
    at de.jetwick.tw.TwitterSearch.oAuthOnCallBack(TwitterSearch.java:159)
    at WICKET_de.jetwick.tw.TwitterSearch$$FastClassByCGLIB$$f61a0e38.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
    at org.apache.wicket.proxy.LazyInitProxyFactory$CGLibInterceptor.intercept(LazyInitProxyFactory.java:319)
    at WICKET_de.jetwick.tw.TwitterSearch$$EnhancerByCGLIB$$d8a51bbb.oAuthOnCallBack(<generated>)
    at de.jetwick.ui.CallbackHelper.getParseTwitterUrl(CallbackHelper.java:46)
    at de.jetwick.ui.HomePage.<init>(HomePage.java:113)
    at sun.reflect.GeneratedConstructorAccessor153.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188)
    at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:89)
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:305)
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
    at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
    at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
    at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)  
    at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428) 
    at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
    at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479)   
    at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:312)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
    at java.lang.Thread.run(Thread.java:619)

Unable to start the Elastic Search

Hi,

  1. I have downloaded version elasticsearch-0.20.6 and installed Java 7 on my machine.
  2. I have also set the environment variable JAVA_Home to the path where java is installed i.e C:\Program Files\Java\jre7.
  3. Now when i try to run the batch file from the extracted folder elasticsearch.bat

I am getting the following error.

[2013-04-08 14:21:33,164][WARN ][bootstrap ] jvm uses the client
vm, make sure to run java with the server vm for best performance by adding - server to the command line
[2013-04-08 14:21:33,179][INFO ][node ] [Black Fox] {0.20.6}
5052: initializing ...
[2013-04-08 14:21:33,195][INFO ][plugins ] [Black Fox] loaded [
], sites []
[2013-04-08 14:21:38,086][INFO ][node ] [Black Fox] {0.20.6}

[2013-04-08 14:21:38,086][INFO ][node ] [Black Fox] {0.20.6}
5052: starting ...
[2013-04-08 14:21:38,493][INFO ][transport ] [Black Fox] bound_ad
dress {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/10.100.172.220:9300]
}
[2013-04-08 14:21:41,813][INFO ][cluster.service ] [Black Fox] new_mast
er [Black Fox][hlJZhaxGT3qtjYnH0F2Juw][inet[/10.100.172.220:9300]], reason: zen-
disco-join (elected_as_master)
[2013-04-08 14:21:41,876][INFO ][discovery ] [Black Fox] elastics
earch/hlJZhaxGT3qtjYnH0F2Juw
[2013-04-08 14:21:42,001][INFO ][gateway ] [Black Fox] recovere
d [0] indices into cluster_state
[2013-04-08 14:21:42,048][INFO ][http ] [Black Fox] bound_ad
dress {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/10.100.172.220:9200]
}
[2013-04-08 14:21:42,048][INFO ][node ] [Black Fox] {0.20.6}

I really stuck in this part, any help would be really useful here.
errorElasticSearch

Error while using River Plugin

Hi,
I am using river plugin and SQL Server.
When I use the following in the terminal

curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{
"type" : "jdbc",
"jdbc" : {
"driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver",
"url" : "jdbc:sqlserver://(Local)\SQLExpress;databaseName=StoreTest;",
"user" : "sa",
"password" : "sa@123456",
"sql" : "select * from Genres"
},
"index" : {
"index" : "jdbc",
"type" : "jdbc"
}
}'

I get the below mentioned error, Can you please trouble shoot this.

{"error":"MapperParsingException[Failed to parse]; nested: JsonParseException[Unrecognized character escape 'S' (code 83)\n at [Source: [B@714f0e; line: 5, column: 36]]; ","status":400}

search explicitly for daemon tweets

It could be that there are a lot of retweets of a tweet that are not stored in the system and weren't caught be the twitter search. (Those tweets were called daemon tweets in previous releases)

In SolrTweetSearch.update we can determine how those tweets could look like and search this text again via twitter4j. When search then use 'popular' to increase probability to get the original tweet (not all the retweets):
http://apiwiki.twitter.com/w/page/22554756/Twitter-Search-API-Method:-search

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.