Giter Site home page Giter Site logo

joemayo / linqtotwitter Goto Github PK

View Code? Open in Web Editor NEW
513.0 43.0 129.0 327.03 MB

LINQ Provider for the Twitter API (C# Twitter Library)

Home Page: http://www.linqtotwitter.com

License: MIT License

PowerShell 0.04% C# 99.93% Pascal 0.02% Batchfile 0.01%
twitter twitter-api twitter-library tweets linq-provider linq csharp c-sharp twitter-bot twitter-oauth

linqtotwitter's Introduction

LINQ to Twitter

LINQ to Twitter is an open source 3rd party LINQ Provider (Twitter Library) for the Twitter micro-blogging service. It uses standard LINQ syntax for queries and includes method calls for changes via the Twitter API.

Example

The following query returns search results where people are tweeting about LINQ providers:

var twitterCtx = new TwitterContext(...);

TwitterSearch? searchResponse =
    await
    (from search in twitterCtx.TwitterSearch
     where search.Type == SearchType.RecentSearch &&
           search.Query == "LINQ to"
     select search)
    .SingleOrDefaultAsync();

if (searchResponse?.Tweets != null)
    searchResponse.Tweets.ForEach(tweet =>
        Console.WriteLine(
            $"\nID: {tweet.ID}" +
            $"\nTweet: {tweet.Text}"));

From a coding experience perspective, the TwitterContext type is analogous to the Entity Framework DBContext. You use the TwitterContext instance, twitterCtx, to access IQueryable<T> tweet categories. In the example above, the TwitterSearch will give you the ability to search Twitter for tweets meeting some criteria.

Note: The ellipses in the TwitterContext parameters indicates that you need to provide an authorizer with credentials, which is required. You can visit Securing Your Applications for documentation on authorizers and visit the Download page for working examples.

Each query category has a Type property for the type of tweets you want to get back. For example, Tweet queries can be made for Mentions, ReverseChronological, or Tweets timelines. Each query category also has an XxxType enum to help you figure out what is available. The example above uses SearchType.RecentSearch to perform searches on matching tweets that happened within the last two weeks or so. Another example would be Like queries which might have LikeType.Lookup as its Type to get all the users who liked a tweet. The Type idiom is consistent across all query categories.

Just like other LINQ providers, you get an IQueryable<T> back from the query. You can see how to materialize the query by invoking the SingleOrDefaultAsync operator. For TwitterSearch results, you receive one TwitterSearch entity that contains metadata about the Search query and also contains a Tweets property that is a collection of Tweet entities. Just like other LINQ providers, LINQ to Twitter does deferred execution, so operators such as ToListAsync and SingleOrDefaultAsync or statements such as for and foreach loops will cause the query to execute and make the actual call to Twitter.

LINQ to Twitter is asynchronous. You can see this where the code above await's the query, using the SingleOrDefaultAsync operator. Commands are async also. e.g. await TweetAsync("Hello from LINQ to Twitter").

For more details on how LINQ to Twitter works, you can visit LINQ to Twitter v6 APIs for API specific examples. The downloadable source code also contains copious examples in the projects. Just look in the Samples folder.

NuGet

In addition to being able to download from this site, you can also automatically install LINQ to Twitter into your projects via NuGet;

Available Feature Set

See LINQ to Twitter v6 APIs.

For more info:

  • follow @JoeMayo for releases and related blog posts.

linqtotwitter's People

Contributors

adefwebserver avatar adesugbaa avatar bjcull avatar cybersea54 avatar ddobrev avatar dependabot[bot] avatar dixin avatar gitter-badger avatar grennis avatar idisposable avatar jeepnl avatar joemayo avatar latkin avatar livven avatar matt2323 avatar mattbeatty avatar nitroin avatar oretodd avatar productiverage avatar theaswanson avatar timurgilfanov avatar vraposo avatar yazgoo 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  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  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

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.