Giter Site home page Giter Site logo

korobi / web Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 3.0 16.23 MB

IRC logging tool & web-based log viewer

Home Page: https://korobi.vq.lc/

License: MIT License

PHP 69.15% Shell 0.23% JavaScript 3.64% CSS 12.38% HTML 13.95% Ruby 0.65%
irc-services korobi php

web's Introduction

Korobi Documentation Build Status

Korobi is a cross-network IRC bot aimed at making channel management easier. It has the functionality to log and track statistics for channels, as well as providing a variety of other useful utilities.

This repository includes the official documentation which is available at https://docs.korobi.io and also functions as an issue tracker for the project as a whole. Please don't hesitate to create an issue if you have an idea or you've found an issue with the site, IRC bot or another component of the project.

Local Environment

You can setup an environment to instantly see the changes made to the docs.

  1. Install Python 2.7 and Sphinx
  2. Install pip
  3. Install node.js

In terminal or the command line, within the directory containing this README, run the following commands:

npm install -g gulp
npm install
pip install -r etc/requirements.txt
gulp

Your browser should open to reveal the docs. When you make a change to the documentation, the docs should refresh in the browser (possibly after a few seconds).

web's People

Contributors

bendem avatar jamierocks avatar kashike avatar korobii avatar lol768 avatar octylfractal avatar zarthus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

web's Issues

Automated testing on deploy

gulp tests will run the tests. The exit code of this command should be watched - if it fails, a gist/paste could be made and broadcasted to the IRC channel.

head tags

How does everyone feel about adding the following tags to <head>?

tag

About page

per-team member:

  • avatar/image
  • about text

Help with grid?

Any chance you could see if you can figure out what I'm doing wrong, @bendem? There's no rush so whenever you have a free moment would be great. I just have no further ideas on how to sort this :(


Page showing the issue:

https://dev.korobi.io/

Expected behaviour:

Should stack on small screens, display proper grid on large screens.

Current behaviour:

Opposite of above.

Browser:

Chrome/Firefox show the same behaviour.

Attempted steps:

  • Change $mobile: new-breakpoint(min-width 60em 12); to $mobile: new-breakpoint(max-width 60em 12);
  • $mobile: new-breakpoint(min-width em(60) 12);
  • The above using 68em.

Other info:

  • Visual grid is enabled for debugging purposes.
  • Orange BG is forced when mobile breakpoint is in operation for debugging.

Relevant files:

src/Korobi/WebBundle/Resources/assets/sass/application/_home.scss
src/Korobi/WebBundle/Resources/assets/sass/application/_grid.scss

Framework docs:

http://thoughtbot.github.io/neat-docs/latest/#new-breakpoint

Restructure directories

current:

└── Korobi
    └── WebBundle
        ├── Controller
        │   ├── BaseController.php
        │   ├── Channel
        │   │   ├── ChannelAIController.php
        │   │   ├── ChannelCommandController.php
        │   │   ├── ChannelGameController.php
        │   │   ├── ChannelHomeController.php
        │   │   ├── ChannelLogController.php
        │   │   └── ChannelStatController.php
        │   ├── DeploymentController.php
        │   ├── DocsController.php
        │   ├── HomeController.php
        │   ├── KittyImageController.php
        │   ├── NetworkController.php
        │   ├── RevisionsController.php
        │   ├── RewriteController.php
        │   ├── SecurityController.php
        │   └── StyleGuideController.php
        └── Resources
            └── views
                ├── controller
                │   ├── channel
                │   │   ├── ai.html.twig
                │   │   ├── commands.html.twig
                │   │   ├── game
                │   │   │   └── cah.html.twig
                │   │   ├── home.html.twig
                │   │   ├── logs.html.twig
                │   │   └── stats.html.twig
                │   └── network
                │       ├── network.html.twig
                │       └── networks.html.twig
                ├── deployment.html.twig
                ├── error-redirect.html.twig
                ├── home.html.twig
                ├── kitty_image.html.twig
                ├── layout.html.twig
                ├── macros
                │   ├── form.html.twig
                │   └── nav_link.html.twig
                ├── partials
                │   ├── footer.html.twig
                │   └── nav.html.twig
                ├── revisions.html.twig
                └── style_guide.html.twig

proposed:

└── Korobi
    └── WebBundle
        ├── Controller
        │   ├── BaseController.php
        │   ├── IRC
        │   │   ├── Channel
        │   │   │   ├── ChannelAIController.php
        │   │   │   ├── ChannelCommandController.php
        │   │   │   ├── ChannelGameController.php
        │   │   │   ├── ChannelHomeController.php
        │   │   │   ├── ChannelLogController.php
        │   │   │   └── ChannelStatController.php
        │   │   └── Network
        │   │       └── NetworkHomeController.php
        │   ├── Private
        │   │   └── DeploymentController.php
        │   ├── Public
        │   │   ├── DocsController.php
        │   │   ├── HomeController.php
        │   │   ├── KittyImageController.php
        │   │   ├── RevisionsController.php
        │   │   ├── SecurityController.php
        │   │   └── StyleGuideController.php
        │   └── RewriteController.php
        └── Resources
            └── views
                ├── controller
                │   ├── irc
                │   │   ├── channel
                │   │   │   ├── ai.html.twig
                │   │   │   ├── commands.html.twig
                │   │   │   ├── game
                │   │   │   │   └── cah.html.twig
                │   │   │   ├── home.html.twig
                │   │   │   ├── logs.html.twig
                │   │   │   └── stats.html.twig
                │   │   └── network
                │   │       ├── network.html.twig
                │   │       └── networks.html.twig
                │   ├── private
                │   │   └── deployment.html.twig
                │   └── public
                │       ├── home.html.twig
                │       ├── kitty_image.html.twig
                │       ├── revisions.html.twig
                │       └── style_guide.html.twig
                ├── error-redirect.html.twig
                ├── layout.html.twig
                ├── macros
                │   ├── form.html.twig
                │   └── nav_link.html.twig
                └── partials
                    ├── footer.html.twig
                    └── nav.html.twig

Thoughts? Are there better words instead of public and private?

Improve SEO drastically.

As of right now, searching in google is useless. 1, 2, 3.

We should focus attention on the homepage so it links to the index of all available logs more easily so google bots can index them better. We should also consider editing robots.txt to help the bots find their way to specific navigations.

There's also something that's called a sitemap but I never used those before, so am not sure how effective that would be.

I often try to find public channel logs by google, these kinds of results are just not acceptable, and the sooner it starts indexing the higher up we'll be, seeing as the web is at a ready enough state to be used.

  • A description of each network to display on the network page (list of channels)
  • The channel topic to display on the logs pages
  • #15
  • A more informative homepage
  • #74

Asset handling

The assetic:dump task (symfony console) doesn't appear to be generating assets properly. I've asked for assistance in the #symfony channel on freenode, awaiting a response.

We might want to look into a more advanced grunt/bower/gulp setup, as @bendem mentioned.

Administration pages

Korobi administration

  • meow

Channel administration

Korobi admins

  • Set channel manager (first)

Channel admins

  • Add/remove additional channel managers, no ability to remove self
  • Add repositories from a list

SASS compiling failing for Symfony staging instance

/usr/bin/ruby: No such file or directory -- /usr/bin/sass (LoadError)

/*
[exception] 500 | Internal Server Error | Assetic\Exception\FilterException
[message] An error occurred while running:
'/usr/bin/ruby' '/usr/bin/sass' '--load-path' '/data1/web/dev.korobi.io/src/Korobi/WebBundle/Resources/assets/sass' '--scss' '--load-path' '/data1/web/dev.korobi.io/app/../web' '--cache-location' '/data1/web/dev.korobi.io/app/cache/dev' '/tmp/assetic_sasshxWDep'

Error Output:
/usr/bin/ruby: No such file or directory -- /usr/bin/sass (LoadError)


Input:
@import "bourbon/bourbon";
@import "base/base";
@import "neat/neat";

[1] Assetic\Exception\FilterException: An error occurred while running:
'/usr/bin/ruby' '/usr/bin/sass' '--load-path' '/data1/web/dev.korobi.io/src/Korobi/WebBundle/Resources/assets/sass' '--scss' '--load-path' '/data1/web/dev.korobi.io/app/../web' '--cache-location' '/data1/web/dev.korobi.io/app/cache/dev' '/tmp/assetic_sasshxWDep'

Error Output:
/usr/bin/ruby: No such file or directory -- /usr/bin/sass (LoadError)


Input:
@import "bourbon/bourbon";
@import "base/base";
@import "neat/neat";

    at n/a
        in /data1/web/dev.korobi.io/vendor/kriswallsmith/assetic/src/Assetic/Exception/FilterException.php line 40

    at Assetic\Exception\FilterException::fromProcess(object(Process))
        in /data1/web/dev.korobi.io/vendor/kriswallsmith/assetic/src/Assetic/Filter/Sass/SassFilter.php line 156

    at Assetic\Filter\Sass\SassFilter->filterLoad(object(FileAsset))
        in /data1/web/dev.korobi.io/vendor/kriswallsmith/assetic/src/Assetic/Filter/FilterCollection.php line 62

    at Assetic\Filter\FilterCollection->filterLoad(object(FileAsset))
        in /data1/web/dev.korobi.io/vendor/kriswallsmith/assetic/src/Assetic/Asset/BaseAsset.php line 94

    at Assetic\Asset\BaseAsset->doLoad('@import &quot;bourbon/bourbon&quot;;
@import &quot;base/base&quot;;
@import &quot;neat/neat&quot;;
', null)
        in /data1/web/dev.korobi.io/vendor/kriswallsmith/assetic/src/Assetic/Asset/FileAsset.php line 65

    at Assetic\Asset\FileAsset->load()
        in /data1/web/dev.korobi.io/vendor/kriswallsmith/assetic/src/Assetic/Asset/BaseAsset.php line 103

    at Assetic\Asset\BaseAsset->dump(null)
        in /data1/web/dev.korobi.io/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCache.php line 69

    at Assetic\Asset\AssetCache->dump()
        in /data1/web/dev.korobi.io/vendor/symfony/assetic-bundle/Controller/AsseticController.php line 89

    at Symfony\Bundle\AsseticBundle\Controller\AsseticController->render('747ece9', '0')
        in  line 

    at call_user_func_array(array(object(AsseticController), 'render'), array('747ece9', '0'))
        in /data1/web/dev.korobi.io/app/bootstrap.php.cache line 3022

    at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
        in /data1/web/dev.korobi.io/app/bootstrap.php.cache line 2984

    at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
        in /data1/web/dev.korobi.io/app/bootstrap.php.cache line 3133

    at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
        in /data1/web/dev.korobi.io/app/bootstrap.php.cache line 2377

    at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
        in /data1/web/dev.korobi.io/web/app_dev.php line 28


*/

Icons

component icon Preview
logs comments-o
log tail fa-ellipsis-h
stats area-chart
commands terminal

feedback welcome

Add topic setter's nick, hostname and date to channel landing page

Right now we display topics on each channel landing page. Here's an example for #bukkit:

Unfortunately this page isn't amazing yet because we have the technology™ to display a few other things:

  • Who set the topic (their nick)
  • The hostname of the person who set the topic (please make it a tooltip)
  • When the topic was set (just a simple timestamp is fine for now)

Your mission @jamierocks, should you choose to accept it, is to create a PR to add this functionality to the codebase so we can deploy it.

Good luck.

Add "external" error pages

Add external error pages (403, 404, 500) that do not use any external or generated resources (in-line css, only required components to display standard pages), and store in web/.

(ref #57)

Symfony 3.0

Add light theme

This has been requested by a couple people from what I've seen.

Parsing Logs could make channels clickable?

If we have logs of #achannel, we could redirect to

Alternatively, provide a link if we have database information on the network connected to? Might be annoying during misclicks

Could make the link blue or red depending on if we log the channel

1.0.0 task list

Tasks:

  • Pages
    • Home ref #28
    • Revisions
    • Channel Commands
    • Channel Logs
    • Channel AI management
  • Tests
    • LogParser
  • Fix LogParser (backgrounds)
  • Style import
    • Buttons
    • Alerts
    • Forms

Other:

  • Can log entries be created in twig?
    • AJAX tails would need to be handled in a different way

Log caching

+ Add a command to clear the cache for a specific network/channel (in case of log removal request)

Homepage activity updates

  • Update homepage activity table (maybe with websockets? @kashike might be able to comment on whether this can be done within the Felix codebase)
  • Update server-sent timestamps in the table with JavaScript every second

Update vendor assets

NOTE: We might have made changes to existing assets, be sure to make sure things work after updating.

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.