All Projects → codesuki → go-trending

codesuki / go-trending

Licence: MIT license
Trending algorithm based on the article "Trending at Instagram"

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to go-trending

Instagram2Fedi
Python script for crossposting from Instagram to Mastodon or Pixelfed
Stars: ✭ 45 (+12.5%)
Mutual labels:  instagram
SocialMediaAppForFoodies
This is a Social networking android app for food lovers. It is a way to connect with other foodies and grow your network of friends and followers. In this app we can, 1.Users can create their own account and maintain it. 2.Post the Recipes with image and Description. 3.Followers can like and Comment on your post 4.Home screen with your and whom …
Stars: ✭ 40 (+0%)
Mutual labels:  instagram
Instagram-Giveaways-Winner
Instagram Bot which when given a post url will spam mentions to increase the chances of winning. Win Instagram Giveaways!
Stars: ✭ 95 (+137.5%)
Mutual labels:  instagram
hashtag.io
Hashtag.io is a PHP based social networking website, which supports exclusive multimedia content, sharing and private or group messaging service.
Stars: ✭ 64 (+60%)
Mutual labels:  instagram
Insta-Bot
Python bot using Selenium increasing Instagram Followers.
Stars: ✭ 62 (+55%)
Mutual labels:  instagram
instagram-oauth-nodejs-server
Node.js server for Intagram-API OAuth purpose.
Stars: ✭ 12 (-70%)
Mutual labels:  instagram
MyIGBot
MyIGBot is a Private API for Instagram to like, follow, comment, view & intaract with stories, upload post & stories, get all information about a user/posts and get posts based on locations/hashtags. It also supports proxy.
Stars: ✭ 137 (+242.5%)
Mutual labels:  instagram
instastory.js
This is a jQuery plugin to make it easy to get a feed from instagram. No need of access tokens and other stuff, Only thing needed is jQuery.
Stars: ✭ 36 (-10%)
Mutual labels:  instagram
InstaCrawlR
Crawl public Instagram data using R scripts without API access token. See InstaCrawlR Instructions.pdf
Stars: ✭ 108 (+170%)
Mutual labels:  instagram
InstaLite
Instagram api not official easy-to-use class, minimal number of features
Stars: ✭ 72 (+80%)
Mutual labels:  instagram
VKRdownloader
Vkrdownloader: All in one Video Downloader - Download videos from facebook twitter youtube tiktok and 1000+ other sites . YouTube downloader , facebook downloader . made by Vijay Kumar
Stars: ✭ 25 (-37.5%)
Mutual labels:  instagram
whatareyou-filter
📷 roulette face effect template
Stars: ✭ 36 (-10%)
Mutual labels:  instagram
InstagramLocationScraper
No description or website provided.
Stars: ✭ 13 (-67.5%)
Mutual labels:  instagram
hacker-feeds-cli
📰 A command line tool for Hacker News、 Product Hunt、 GitHub Trending 、Reddit and V2EX feeds.
Stars: ✭ 129 (+222.5%)
Mutual labels:  trending
Insta flters with python
With this program you can add hat & glass on your face(it's support multiple faces)
Stars: ✭ 21 (-47.5%)
Mutual labels:  instagram
Skeleton
Skeleton is a Social Engineering tool attack switcher
Stars: ✭ 44 (+10%)
Mutual labels:  instagram
instagram
A Matrix-Instagram DM puppeting bridge
Stars: ✭ 69 (+72.5%)
Mutual labels:  instagram
rn instagram clone
React Native Instagram UI Clone & Steemit App
Stars: ✭ 70 (+75%)
Mutual labels:  instagram
instagrammer
Get personal RSS feed access to your Instagrams
Stars: ✭ 15 (-62.5%)
Mutual labels:  instagram
Hashtag-Wall-Server
Hashtag wall that displays posts from social media
Stars: ✭ 33 (-17.5%)
Mutual labels:  instagram

go-trending

License GoDoc Build Status codecov

Trending algorithm based on the article Trending at Instagram. To detect trends an items current behavior is compared to its usual behavior. The more it differes the higher / lower the score. Items will start trending if the current usage is higher than its average usage. To avoid items quickly become non-trending again the scores are smoothed.

  • Configurable and simple to use
  • Use your own clock implementation, e.g. for testing or similar
  • Use any time series implementation as backend that implements the TimeSeries interface

Details

Uses a time series for each item to keep track of its past behavior and get recent behavior with small granularity. Computes the Kullback-Leibler divergence between recent behavior and expected, i.e. past, bahavior. Then blends the current item score with its past decayed maximum score to get the final score.

Examples

Creating a default scorer

import "github.com/codesuki/go-trending"

...

scorer := trending.NewScorer()

Creating a customized scorer

Parameters

  • Time series: is used for creating the backing TimeSeries objects
  • Half-life: controls how long an item is trending after the activity went back to normal.
  • Recent duration: controls how much data is used to compute the current state. If there is not much activity try looking at larger duration.
  • Storage duration: controls how much historical data is used. Trends older than the storage duration won't have any effect on the computation. The time series in use should have at least as much storage duration as specified here.
import "github.com/codesuki/go-trending"

...
func NewTimeSeries(id string) TimeSeries {
    // create time series that satisfies the TimeSeries interface
    return timeSeries
}

...

scorer := trending.NewScorer(
    WithTimeSeries(NewTimeSeries),
    WithHalflife(time.Hour),
    WithRecentDuration(time.Minute),
    WithStorageDuration(7 * 24 * time.Hour),
)

Using the scorer

import "github.com/codesuki/go-trending"

...

scorer := trending.NewScorer()

scorer.AddEvent("id", time)
// add more events. maybe using an event stream.

...

trendingItems := scorer.Score()

Documentation

GoDoc is located here

License

go-trending is MIT licensed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].