Coder Social home page Coder Social logo

julien-c / circular Goto Github PK

View Code? Open in Web Editor NEW
1.0K 74.0 194.0 2.54 MB

An open source Buffer app clone

Home Page: http://circular.io

License: MIT License

PHP 2.87% ApacheConf 0.02% HTML 49.50% JavaScript 46.40% CSS 0.76% Makefile 0.44%
buffer tweet-scheduling twitter

circular's Introduction

Circular

An open source Buffer app built on Backbone, Bootstrap and MongoDB

http://circular.io


Circular is built as a Backbone.js application that communicates with a MongoDB datastore through a REST API written in PHP.

The server part, based on the Silex PHP micro-framework and the Mongovel wrapper to MongoDB, is intended to be the dumbest possible, i.e. we tried to put most "intelligence" in the Backbone app, not in the API. (For example, the API only takes UNIX timestamps and posts' content, while the Backbone app computes the scheduled timestamps).

A daemon based on PHP-Daemon then runs in the background and is responsible for sending your posts to Twitter when they're due.

Installation


Prerequisites:

Installation:

  • Make sure you cloned this repo recursively, i.e. with submodules that are in extlib
  • Create a new Twitter application on dev.twitter.com, then copy your credentials into api/config.php.sample and rename it to api/config.php
    • Make sure to specify an OAuth callback URL in your Twitter application settings. Use http://[server_name]/[path to buffer]/api/oauth.php
  • Install the Silex application dependencies using Composer: cd api && composer install
  • Create an uploads directory and make it writable by the Web server
  • Your application's frontend should now be accessible where you set it up, for instance at http://localhost/Circular. The MongoDB datastore's name will be circular (you don't have to explicitly create it).
  • Start the daemon with php Daemon/run.php
    • Use option -d to run as daemon, i.e. detach and run in the background
    • Your daemon's log will be in /var/log/daemons/circular, or if this is not writable, in Daemon/logs. You can use/rotate this log to monitor your daemon.
  • That's it!

License


circular's People

Contributors

dhilowitz avatar julien-c avatar manavo avatar potomak 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  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

circular's Issues

Circular.io not posting anymore

Thanks for making circular.io!

But, the scheduled tweets as well as the post now feature have not been working for the past few days.

To elaborate, I've also re-authorised the app and I've tried with another twitter account, but to no avail.

Regards,
Sandeep

Twitter character counter should account for Twitter automatic link shortening.

There's an easy way to implement this as Twitter offer a javascript library for counting characters: https://github.com/twitter/twitter-text/tree/master/js

*Remaining character count example&

var tweet = "This is a test tweet":
var remainingCharacters = 140 - twttr.txt.getTweetLength(tweet);

getTweetLength returns the computed length of a tweet after taking into consideration t.co URL shortening and non UTF-16 characters

Hosting

Hey!

Ive been trying to run this app for a week now but can't get it running on my existing servers.

Where do you guys host this script?
Cheers,
Aron

Enhancement: API Connection with IFTTT or similar Tools

We have used buffer for almost a year and liked the integration features on it. Circular seems like a really great app. May be we should also start thinking about app support thru api.

Simple use cases are like this

  • A new post on a feed can be buffered
  • A File of tweets can be uploaded and auto scheduled

I am a beginner in learning all the technologies used on this project however I am willing to contribute. Any guidance is appreciated.

Not posting

Hi just signed up and queued a few tweets and they are not tweeting. They don't tweet when I hit the post now button either. I was just wondering if there was any know problems currently or I'm doing something completely wrong.

Corey

I'm unable to sign-in into http://circular.io/

When I click "Sign in with Twitter" on circular home page, it redirects to twitter oauth page. There I click "Authorize app" then it redirects to circular home page http://circular.io/ with an option to "Sign in with Twitter" instead of "tweet scheduler box". And there is a circle in center which keeps revolving infinitely. Every time I try to sign-in, this happens again and again.

Please guide me to resolve this problem.

Thank You

Facebook and other networks?

Any plans to add other networks in addition to Twitter?

Facebook pages and groups
Pinterest
App.net (just like twitter but new)

Tweets authored after session expires are lost

  1. Log in
  2. Open a new tab and log out or in some other way expire your session
  3. Author a tweet and click "Add to Circular"

Result:
Tweet box is emptied and an error message appears

Expected Result:
Tweet box still contains newly authored tweet and an error message appears. Ideally the tweet box would be repopulated after logging back in

reteriving of setting is not working

bject(ReflectionException)#96 (7) { ["message":protected]=> string(27) "Class config does not exist" ["string":"Exception":private]=> string(0) "" ["code":protected]=> int(-1) ["file":protected]=> string(89) "/var/www/html/circular/api/vendor/illuminate/container/Illuminate/Container/Container.php" ["line":protected]=> int(501) ["trace":"Exception":private]=> array(15) { [0]=> array(6) { ["file"]=> string(89) "/var/www/html/circular/api/vendor/illuminate/container/Illuminate/Container/Container.php" ["line"]=> int(501) ["function"]=> string(11) "__construct" ["class"]=> string(15) "ReflectionClass" ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> string(6) "config" } } [1]=> array(6) { ["file"]=> string(89) "/var/www/html/circular/api/vendor/illuminate/container/Illuminate/Container/Container.php" ["line"]=> int(425) ["function"]=> string(5) "build" ["class"]=> string(30) "Illuminate\Container\Container" ["type"]=> string(2) "->

Add a setting to change to 24h time.

This issue is the main reason why I do not use Buffer App. It is quite hard for those, who are not used to AMs and PMs to figure out the right time.

Changed Twitter password issue

I've just changed my Twitter password and can no longer sign into Circular. Is this issue related to the expired token issue? Many thanks.

I cannot install properly Circular on Digital Ocean VPS

Hey,

I love very much what @julien-c has created and I would like to install it on my own VPS.
I went step by step the installation README file, searching and executing guides and tutorials to get my prerequisites straight. I am now blocked at the point where I am supposed to run

php Daemon/run.php

But it seems to give me this error:

PHP Warning: require(/var/www/html/buffer/Daemon/../extlib/tmhOAuth/tmhOAuth.php): failed to open stream: No such file or directory in /var/www/html/buffer/Daemon/ParallelTasks.php on line 5
PHP Fatal error: require(): Failed opening required '/var/www/html/buffer/Daemon/../extlib/tmhOAuth/tmhOAuth.php' (include_path='/var/www/html/buffer/Daemon:/var/www/html/buffer:/var/www/html/buffer/extlib/PHP-Daemon::.:/usr/share/php:/usr/share/pear') in /var/www/html/buffer/Daemon/ParallelTasks.php on line 5

I searched around for this but I couldn't get to any solid/working solutions.

If someone could helped me out with this, it would be great and I would be really grateful and thankful.

Thanks in advance,

Kostas

Support for #FF tweets (user case; enhancement)

I'd like to put aside #FF (Friday Follow) accounts at any time, and have such tweets be sent on the next Friday. Currently, with Circular, this cannot be done.

To enable this, weekdays should somehow be settable in the scheduling. I could set up just one schedule, i.e. for Friday 10:52.

Better yet, there could be filters such that all my other schedules would be "unless the tweet contains '#FF'" and the Friday schedule would be "if the tweet contains '#FF'". This would allow managing multiple "pipelines" without the added burden in the UI.

I hope this is not too much to be asked, for the MVP oriented project. Thanks for considering. :)

Problem with adding tweets with images

Hi, I have been using Circular for more than 2 month and its awesome but recently I added some tweets with images (which was for the first time and during the past 2 month all my tweets were text only) and it doesn't work! It says that its posted successfully but nothing will be added to profile. It would be great if you can help me figure out the problem and/or fix the issue.
Cheers

Cannot login

Attempting to sign into Circular for the first time and all I receive is a continuous login attempt. Suggestions?
circular issue

Roadmap to v2

  • Rewrite daemon (1 day)
  • Switch hosting and document install to e.g. Digital Ocean (0.5 day)
  • Rewrite API (1 day)
  • Document API (0.5 day)
  • Improve frontend (2 days)

Circular.io not working for me, unable to sign in properly to dashboard. Please help....

My twitter handle is @ThenNowWow
Before signing in to Circular, there are no apps approved to use my account.
Screenshot:
1

Then I opened circular.io in a new tab.
Screenshot:
2

Clicking on "Sign in with Twitter" twitter's app authorization page loads.
Screenshot:
3

Clicking on "Authorize app" loads Circular's home page, but it doesn't redirect to Circular's dashboard. The ring keeps on moving round and round indefinitely. Reloading the page doesn't help, again that ring keeps on moving round!
Screenshot:
4

I also checked apps approval page of twitter which shows that Circular has been approved successfully.
Screenshot:
5

Please help out.
Thanks

Character count should take into account if images are attached to the tweet or not

Character counter always assumes 140 character long tweets. To my knowledge, tweets with images has a limit in the number of character of 118 (images are turned into t.co links of fix size of 22)

Upon my tests, tweets with +118 chars and images are not actually posted to twitter, neither the "post now" nor the "add to circular" ones

Docs: OAuth callback URL needs to be set

In the README.md, recommend adding a notice that an OAuth Callback URL needs to be specified tn the Twitter App setup to allow for dynamic callbacks, otherwise Twitter restricts OAuth to OOB mode.

Can't Post tweet or Add post to Circle

I tried many times to authorize my account and after authorization, I can't tweet nor save my posts in circle, I opened my error.log in apache and here is what I get

[Tue Mar 18 21:34:00 2014] [error] [client 137.135.181.134] File does not exist: /var/www/Circular/api/settings, referer: http://whitechimera.no-ip.biz/Circular/

[Tue Mar 18 21:39:03 2014] [error] [client 137.135.181.134] File does not exist: /var/www/Circular/api/counter, referer: http://whitechimera.no-ip.biz/Circular/

[Tue Mar 18 21:39:03 2014] [error] [client 137.135.181.134] File does not exist: /var/www/Circular/api/posts, referer: http://whitechimera.no-ip.biz/Circular/

also the Readme says to create upload folder, I should create this folder in Circular/api right ?

Auto-Scheduling tweets by analyzing best times for optimal reach

Is it possible to implement the feature that http://Timely.is where timely.is analyzes Your twitter account and see's which times you tweets received the most reach. i.e most reads/re-tweets/favourites etc and then automatically tweets during those times.. All we had to do was specify how many tweets to go out during the day, and timely.is figured out the best times..

Here's an article on how Timely.is used to work..
http://sociableboost.com/how-to-use-timely-is-to-improve-your-twitter-activity/

For those that don't know, Timely.is shut down the free service last year

Automatically shorten URLs

Hey @julien-c, excellent work on Circular - loving the simplicity.

Has there been any headway in implementing/integrating the automatic URL cropping native to Twitter?

Future plans for more social networks

Are there any plans to add more social networks to post to (Facebook/Linkedin).

Or how difficult would it be to add in this functionality? Have you any pointers about where to start?

Firefox extension

Currently, only chrome is supported, but many people have been switching back to Firefox

Survey: Who is self-hosting Circular?

Hello all,

I'm currently considering a backend rewrite for Circular, switching from PHP and maybe using a different DB engine.

Who is currently self-hosting Circular, so that I can assess how much of an impact that would represent on the community?

Best,

Julien

Unknown Twitter API error

I keep receiving an "Unknown Twitter API error".

Here's the error: http://d.pr/i/bd4Y

Happens when I click on the "Sign in via Twitter" button on the home page.

Any pointers on how solve this problem will be helpful....thanks! :)

Multiple schedules

This feature request is similar to #15 but for general use.

Buffer currently allows you to create multiple configurable schedules.

bufferschedules

Unfortunately, you need a premium Buffer account to access this feature.

Multiple schedules are essential when you want to maximize your reach. Your followers are generally never online at the same times throughout the week.

Here's a screenshot from my Tweriod analysis for Sunday:

tweriodsunday

I would like to request that someone implement this feature (multiple configurable schedules).

Thank you.

Scheduled times not getting loaded for each Twitter account I log in as

I use circular.io for a few different Twitter accounts and I've noticed that when I logout of one account and go into another, the email setting is correct but the scheduled times persist from my last login/session instead of what I had previously set for the account I am now in. I think this is a bug?

feature request: schedule retweets

it would be great to be able to schedule retweets (not old-style RT quote).

there's two ways i do that today via Buffer, and that is via a chrome extension adding an option on twitter.com, and via sending an email f.ex from my mobile twitter client.

Support multiple users tweeting from one account

Feature idea:
It would be great to be able to set-up one twitter account as the "managed" twitter account, but then set up a set up five or six people who would be allowed to tweet. These people would need to identify themselves probably by again logging in with twitter, though not necessarily.

I'm coming here today because grouptweet (who do this feature as their core offering) have just closed down their free service and started nagging for money.... but it seems like a relatively simple thing, and one which should be available as open source. Incidentally the business of scheduling a tweet for the future, has always been a paid-for added extra on grouptweet.

Remove accounts from DB?

How can I remove accounts from the DB? I am getting an invalid OAuth response after revoking and re-authorizing access from one of the accounts. :-/

"{\"errors\":[{\"message\":\"Invalid or expired token\",\"code\":89}]}"{"id":"54ad4ffdf0c2981c5f000001","users":{"54ad4ffdf0c2981c5f000000":{"user_id":2966104913,"user_screen_name":"PhotosSailing","profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/552839685047717888\/9nuXADG2_normal.jpeg","name":"Sailing","id":"54ad4ffdf0c2981c5f000000"},"54ad5078f0c298945e000000":[],"54ad50c8f0c2981c5f000002":{"user_id":2937010654,"user_screen_name":"startupurdreams","profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/547041795419287552\/fL6tb_KU_normal.png","name":"Tech Startups","id":"54ad50c8f0c2981c5f000002"},"54ad5203f0c298d95f000000":{"user_id":2965880583,"user_screen_name":"streetartworks_","profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/552806845606154242\/NOp4x72e_normal.jpeg","name":"Street Art","id":"54ad5203f0c298d95f000000"},"54ad52d2f0c298d95f000001":{"user_id":2385077040,"user_screen_name":"ItsPuppyWorld","profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/545177764324593664\/_VWv8gZ7_normal.jpeg","name":"Puppies","id":"54ad52d2f0c298d95f000001"}}}

Thank you!

Error 405 (Method Not Allowed)

Hey again!

I managed to run Circular and sign in with Twitter. Now I have trouble making posts. All in-app actions I make return an Error 405, method not allowed from Twitter. The links that "go off" are

api/settings
api/times and
api/posts

I am using nginx.

Thank you in advance.

PS In which folder am I supposed to create the 'uploads' folder?

Update: I tried placing this

To allow POST on static pages
error_page 405 =200 $uri;

In my configuration. I wouldn't receive any errors on the console but it still wouldn't post.

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.