Skip to content

Commit

Permalink
Add license file for Bootstrap; general update to docs; add verbose u…
Browse files Browse the repository at this point in the history
…ser account logging when server starts
  • Loading branch information
thrize committed Jan 22, 2017
1 parent a7fabcc commit 1f642ea
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 53 deletions.
21 changes: 21 additions & 0 deletions LICENSE-Bootstrap
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright (c) 2011-2016 Twitter, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ All original programming is under the CC0 license and so it completely open and

Included in this repo are the following libraries:

- [Bootstrap](https://getbootstrap.com/) is used for web frontend, and so included in this repo, and is under the MIT license, copyright to Twitter
- [Bootstrap](https://getbootstrap.com/) is used for web frontend, and so included in this repo, and is under the MIT license, copyright to Twitter. The license document is in the root folder.
- MD5 Hashing algorithm ([modified from this source](http://www.queness.com/code-snippet/6523/generate-md5-hash-with-javascript) by Paul Johnston and Greg Holt is under copyright and licensed under the BSD license. Legal text [available here](http://pajhome.org.uk/site/legal.html)

The [steem Node.js package](https://www.npmjs.com/package/steem) by adcpm is central to the app, a big thank you to the creators. Please [star it on GitHub](https://github.com/adcpm/steem) to support their development and check out their project [Busy](https://github.com/adcpm/busy).
Expand All @@ -68,7 +68,7 @@ Several other Node NPM libraries are used as dependencies (thier source is not i

## Disclaimer

We are not required to supply terms because we are not running a service. However obviously you are at your own liability if you use this software.
We are not required to supply terms because we are not running a service. However obviously you are at your own liability if you use this software. See [the license](/LICENSE) for full legal text.

Contributions via pull request are very welcome, as is issues logged via the GitHub issue tracker. You can also suggest features, such as metrics you'd like to see, UI upgrades, etc.

Expand Down
8 changes: 4 additions & 4 deletions docs/discussion.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ Where the general tools exist to add automatic curation, they come at a cost, wh

### So what is this?

The goal of this project is to bring a high quality and fully customisable bot to anyone who is willing to put in the time to set up a simple server and write their own customisations. I'd like to see bot programming guilds of people helping each other.
The goal of this project is to bring a high quality and fully customisable bot to anyone who is willing to put in the time to set up a simple server and make their own customisations.

We recognise that there is a investment of time and patience required to set this up and ever effort has been made to make this as easy as possible. In the future it would be ideal to have a super simple, consumer grade interface but at present there is some overhead.

Be encouraged though that it is certainly possible to set up without any existing technical knowledge, just a user's knowledge of Steem.
Be encouraged though that it is certainly possible to set up without any existing technical knowledge, just a user's knowledge of Steem and patience to follow the tutorial.

## How it works
To get started, see the [insatllation instructions](/docs/installation.md).

_Note, none of this is implemented yet, it's still in the ideation stage_
## How it works

See my [original Steemit post here](https://steemit.com/curation/@personz/5qnnnx-free-open-source-steemit-bot-proposal-and-question) where this idea was proposed.

Expand Down
2 changes: 0 additions & 2 deletions docs/ecosystem.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# Steem FOSSbot

_This document is very incomplete_

## Overview

Steem FOSSbot (Free Open Source bot), is a software ecosystem which comprises a solution for automation on Steem. _Voter_ is the first and most central piece of this, as it is the **curration 'bot'** which actually decides which posts to vote on, and also performs the voting action.
Expand Down
53 changes: 13 additions & 40 deletions docs/ethos.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,55 +10,28 @@ Please see the [discussion doc page](/docs/discussion.md) for more information o

### Ethos and goals

1. Completely free software. As open source software which is [licensed as creative commons](/license) (CC0), the code is free to use, modify, etc.
2. Completely free usage. Discounting your own costs, if any, the bot apps are free to run. Unlike many other Steem voting apps, **you are not required to give votes to the creator as payment**.
3. No managed user account, except what we need to host the server (i.e. Heroku). All access to the apps and bots is authenticated using API keys
4. You private keys are kept private and controlled by you. The creator does not store you keys on their server. Instead, they are stored on your own server which you create, giving you complete control and knowledge of their usage.
5. No tracking or data retention of any kind
#### 1. Excellent algorithm

## Comparison with other bots
To the best of our knowledge, this bot is the most flexible and intellegent bot freely available for use. The potential bot configurations are endless.

_Note: When referencing a Steem user name, the @ symbol has been replaced with (at) so as not to notify users on GitHub._
No other bot uses NLP processing, article type inference, and wide use of statistics, not only about the post but about the author and those who've already voted on it.

I don't wish to detract from the excellent third party software being writen for Steem, all these efforts expand the usefulness of the system and show what is possible. I do wish to illustrate the differences between offerings, especially with regards to cost and data protection. Criticism should be seen as a fundamental part of any healthy debate.
#### 2. Completely free software

### Autosteem
As open source software which is [licensed as creative commons](/license) (CC0), the code is free to use, modify, etc.

[https://autosteem.learnthis.ca](https://autosteem.learnthis.ca)
#### 3. Completely free usage

A great one-stop-shop for Steem automation, as well as a wonderful new UI to replace Steemit.com with a more Wordpress type feel.
Discounting your own costs, if any, the bot apps are free to run. Unlike many other Steem voting apps, **you are not required to give votes to the creator as payment**.

The scope of Autosteem is far beyond Steem FOSSbot, but the filtered, automatic voting is very similar to our offering.
#### 4. No managed user account

#### Pros
Except what we need to host the server (i.e. Heroku), you do not need to create any account. (Soon you will be able to run this locally on your desktop or Raspberry PI).

1. Extremely good UI
2. Interactive filtering of posts for (auto)curation
3. Can use manual mode also
All access to the apps and bots is authenticated using an API keys which you set. Your private keys are kept private and controlled by you. The creator does not store you keys on their server. Instead, they are stored on your own server which you create, giving you complete control and knowledge of their usage.

#### Cons
#### 5. No tracking or data retention of any kind

1. Will vote for every post by the app creator (at)unipsycho
2. Must create an account and trust the website with your private posting key
We take the idea of Do Not Track seriously. There is no social media login, no analyitcs platform, nothing. You can deploy the server to Heroku without so much as a whisper to us.

### Streemian

[https://streemian.com/](https://streemian.com/)

A collection of services to add to usability of Steem, including a "Curation Trail" service which includes automatic curated voting. The service seems to provide the ability to vote for all content posted by up to 5 authors.

The order of voting for all registered users is shuffled randomly, as voting time since post time greatly impacts curation reward. Additionally, you can pay the service a premium fee (currently $5 of Steem) to go much earlier in the voting queue.

The developer (at)chainsquad seems to assume that people will go for a blanket high gain strategy and follow whales, or authors you like to maximise cultural impact. With the authors list restricted to 5, I assume most people will go for high gain and simply follow whales.

#### Pros

1. Simple, easy to use service
2. Paying is optional

#### Cons

1. Very general curation without much control
2. Queued voting is an arbitrary constraint to funnel users to premium upgrade
1. Requires "social login", meaning a login on a mainstream social media website
2. The [privacy policy](https://streemian.com/privacy) states that **Steemian may track users** and collect personally identifying information. This is standard on web services today, but it is completely against our ethos
However, of course we have no control over if and how third parties may track you. We are developing the local install support soon so you can stay completely away from third party services, except NPM.
12 changes: 8 additions & 4 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,24 +20,28 @@ _Finally, there is a usage limit to the free account on Heroku which you should

1. Create a Heroku account
2. Deploy this project to the Heroku using the Heroku Button above
3. Choose a name for your Voter bot (if you want) and click the _Deploy_ button
3. Choose a name for your Voter bot (if you want)
4. Set Configuration Variables. Note that without the required variables, the bot and server will not start.
1. **STEEM_USER**, set to your user name, without a preceding "@" symbol.
2. **POSTING_KEY_PRV**, set to your private Steemit posting key, used to cast votes
3. **BOT_API_KEY**, set to any alphanumeric key you generate to grant access to your bot. Used to authenticate bot actions, such as start bot, as well as third party access.
4. **EMAIL_ADDRESS_TO** (optional), set to your email address for notifications
5. **EMAIL_ADDRESS_SENDER** (optional), set spoof email address for notification sender. Has no effect if EMAIL_ADDRESS_TO is not set
6. **SENDGRID_API_KEY** (optional), set to SendGrid API key, _which you will set up later_ if you want email notifications, so leave as default 'none' for now

You can always go to the _Resources_ tab in your Heroku Dashboard and change these variables any time. Each time you set a Config variable it restarts the server, so the change can take effect.
5. Click the _Deploy_ button
6. **Wait**, this process can take up to five minutes, do not refresh your browser.

After the app finishes deploying as a server, you can view the dashboard by clicking the **View ->** button and confirm it was set up correctly. Use the root URL of your app as hosted on Heroku, e.g. https://voter.herokuapp.com

##### Please note

You can always go to the _Resources_ tab in your Heroku Dashboard and change these variables any time. Each time you set a Config variable it restarts the server, so the change can take effect.

Please see the usage information above this section for more information about the dashboard.

#### IMPORTANT! Configure bot to run periodically

A free Heroku app (called a "dyno") will idle after a certain amount of time, and so we cannot run a continuous code on this server. However in order to run our curation bot **we need to set a scheduled task which will run the bot periodally**.
A free Heroku app (called a "dyno") will idle after a certain amount of time, and so we cannot run a continuous code loop on this server. However in order to run our curation bot **we need to set a scheduled task which will run the bot periodally**.

The **Heroku Scheduler** add-on was created with the app (if you had a verified account), so we'll add a scheduled task there with these steps:

Expand Down
2 changes: 1 addition & 1 deletion lib.js
Original file line number Diff line number Diff line change
Expand Up @@ -1102,7 +1102,7 @@ function getUserAccount() {
}
if (process.env.STEEM_USER) {
steem.api.getAccounts([process.env.STEEM_USER], function(err, result) {
//console.log(err, result);
console.log(err, result);
if (err || result.length < 1) {
setError("init_error", true, "Could not fetch STEEM_USER"+(err ? ": "+err.message : ""));
} else {
Expand Down

0 comments on commit 1f642ea

Please sign in to comment.