<commit_before># Coolol

Coolol is a fully customizable twitter client based on JavaScript ES6 without any backend. It communicates with Twitter server directly. So you don't have to sign up or give your token to me. Everything stays and only stays in your browser.

Open [Coolol.Me](http://coolol.me) and you are ready to go.

Notice: I only test in latest Google Chrome. May or may not support other browser in the future. But contribution is welcomed.

It allows you to write a config like:

```json
{
  "channels": [
    {
      "name": "Home",
      "sources": {
        "statuses_homeTimeline": {}
      }
    },
    {
      "name": "Mentions",
      "sources": {
        "statuses_mentionsTimeline": {}
      }
    },
    {
      "name": "Mix sources",
      "sources": {
        "statuses_homeTimeline": {},
        "statuses_mentionsTimeline": {}
      }
    },
    {
      "name": "My tweets",
      "sources": {
        "statuses_userTimeline": {
          "user_id": "me"
        }
      }
    }
  ]
}
```

Name of sources come from [Codebird convention][codebirdMapping] based on [Twitter API][twitterApi]


# Local Usage

* `git clone https://github.com/ranmocy/Coolol.git`
* `cd Coolol`
* `python -m SimpleHTTPServer 8080`
* Open browser with url: `http://localhost:8080`


# TODO

* Auto refresh
* Fetch more tweet when scroll down to the bottom
* Prepends tweet when publish new tweet.

   [codebirdMapping]: https://github.com/jublonet/codebird-js#mapping-api-methods-to-codebird-function-calls (Codebird API Mapping)
   [twitterApi]: https://dev.twitter.com/rest/public (Twitter REST API)<commit_msg>add todo<commit_after># Coolol

Coolol is a fully customizable twitter client based on JavaScript ES6 without any backend. It communicates with Twitter server directly. So you don't have to sign up or give your token to me. Everything stays and only stays in your browser.

Open [Coolol.Me](http://coolol.me) and you are ready to go.

Notice: I only test in latest Google Chrome. May or may not support other browser in the future. But contribution is welcomed.

It allows you to write a config like:

```json
{
  "channels": [
    {
      "name": "Home",
      "sources": {
        "statuses_homeTimeline": {}
      }
    },
    {
      "name": "Mentions",
      "sources": {
        "statuses_mentionsTimeline": {}
      }
    },
    {
      "name": "Mix sources",
      "sources": {
        "statuses_homeTimeline": {},
        "statuses_mentionsTimeline": {}
      }
    },
    {
      "name": "My tweets",
      "sources": {
        "statuses_userTimeline": {
          "user_id": "me"
        }
      }
    }
  ]
}
```

Name of sources come from [Codebird convention][codebirdMapping] based on [Twitter API][twitterApi]


# Local Usage

* `git clone https://github.com/ranmocy/Coolol.git`
* `cd Coolol`
* `python -m SimpleHTTPServer 8080`
* Open browser with url: `http://localhost:8080`


# TODO

* Auto refresh
* Fetch more tweet when scroll down to the bottom
* Prepends tweet when publish new tweet.
* Add GIF indicator

   [codebirdMapping]: https://github.com/jublonet/codebird-js#mapping-api-methods-to-codebird-function-calls (Codebird API Mapping)
   [twitterApi]: https://dev.twitter.com/rest/public (Twitter REST API)
{'fraction_non_alphanumeric': 0.11896710728558253, 'fraction_numerical': 0.005533353827236397, 'mean_word_length': 2.8554502369668247, 'pattern_counts': {'":': 30, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6898239', 'n_tokens_mistral': 1044, 'n_tokens_neox': 990, 'n_words': 321}