convos-chat / convos Goto Github PK
View Code? Open in Web Editor NEWConvos :busts_in_silhouette: is the simplest way to use IRC in your browser
Home Page: http://convos.chat
License: Artistic License 2.0
Convos :busts_in_silhouette: is the simplest way to use IRC in your browser
Home Page: http://convos.chat
License: Artistic License 2.0
Hi,
It would be awesome if there was some guide to walk users through on how to deploy Convos to Heroku/DotCloud.
Thanks!
Screenshot: http://dimlife.com/ia5d5.png
Errors in console:
Use of uninitialized value $[1] in string ne at /home/dim/test/convos-release/script/../lib/Convos/Core/Connection.pm line 194.
Use of uninitialized value $[1] in join or string at /home/dim//test/convos-release/local/lib/perl5/Mojo/IRC.pm line 546.
[Wed Dec 25 04:39:04 2013] [warn] [DiM:192.168.1.3] DiM No nickname given
Would be nice if convos show the time from the timezone I'm in.
When attempting to add a server using an IPv6 address, "Invalid server name" is returned. If attempting to use a domain mapped to an IPv6 address, "Bad Hostname" is returned as the error.
Would be nice if it was possible to browse backwards in time by date. Would be even cooler if the timeline had big/small circles when you talked/were mentioned/...
It would be cool if a gist was created on multiline paste, and an URL was posted to the chat instead of multi line text. We might also create a "write code" mode which opens a multiline editor inside convos where the code is posted to gist.github.com.
I want to...
See also #89 for connecting to github and https://developer.github.com/v3/gists/
What happens:
This should be fixed by replaying server messages from when the connection was dropped on websocket reconnect.
This was once implemented, but now broken.
When clicking on a nick in the list of participants of a channel the tab of the channel stays active (bold) and no new tab for the private chat is attached in the menubar. Once the first reply is received, the nick is attached as a tab and marked as bold.
If there is already logged previous messages in that private chat, messages from the channels backlog are shown above the first logged message of the private chat. This only happens if the private chat is not attached as a tab, so will probably be fixed, once the tab is always properly opened.
We need better link handling:
/names in the channel #nuug, receive this response:
<li class="nicks" data-network="freenode" data-target="#Nuug">
<span class="prefix">Participants are</span>
<span>
<a data-nick="Brumle" href="/freenode/a">a</a>,
<a data-nick="CybDev" href="/freenode/b">b</a>,
<a data-nick="johskar" href="/freenode/c">c</a>,
</span>
<span class="timestamp" title=" 9. April 12:05:55">12:05</span>
</li>
So it seems like the javascript fail to lookup the "Nuug" id, since it's called "nuug" in the markup:
<ul class="with-sidebar chat" data-network="freenode" data-target="#nuug" data-nick="jhthorsen" data-start-time="1397035814.5320599" data-end-time="1397037930.6466999">
I want to do some changes:
Need to discuss this with @marcusramberg before changing.
Error when starting convos (v0.1001)
AssetPack missing preprocessors:
Autoscroll is great when you're looking @ the browser. It would be great to have some way to go back to last read when the app has been out of focus for a while.
I would like to have a restricted version of Convos, which only lets you log in and join a channel, without settings or persistence. For running a demo mode and embedding in company pages.
I changed the license to "Artistic License version 2.0" now (same as Mojolicious). I have no special reason why I chose that license, but we need some sort of COPYRIGHT AND LICENSE section.
Which do you prefer @marcusramberg ? I think I'm up for any kind...
I like to use Convos at work and people like to post NSFW links.
For TLS support IO::Socket::SSL is required. Would it make sense to include it in the Docker container?
It quite annoying for a new user to think everything is set up just fine, while accidentely forgetting to start the backend.
It would be nice if the frontend displayed some sort of message when the backend is dead.
It would be nice if the backend started by default if the server was started as a daemon.
I'm thinking maybe we should add another mojo command which starts both frontend/backend by setting an environment variable...
But do we really want this? I mean, should we rather tell the users that the right way to run the server is with two processes?
Re-assign to me @marcusramberg if you think we should have one command to rule them all.
You can join a channel with +k with /join #channel key
but key isn't saved, so if the server reconnect it will not rejoin #channel.
I think we should store the avatar lookup key in either the "name" or "user" attributes from Mojo::IRC. That way, we can share the avatar information across installations instead of limiting us to one server.
https://metacpan.org/pod/Mojo::IRC#name
But should i store the gravatar email or the hash? The latter gives more privacy, so I'm leaning toward that.
We should support a searchable dropdown in convos when pressing t without focus in the input field, similar to what modern text editors do.
The websocket does not reconnect if the computer change IP or goes to sleep. I've seen it some times on my phone and coworkers experience it "all the time" in Firefox. It's probably a common issue.
I want to use https://metacpan.org/release/Mojolicious-Plugin-Web-Auth to do oauth and oauth2 authentication.
@marcusramberg wants to use https://metacpan.org/release/Mojolicious-Plugin-OAuth2.
The reason I want to use Web::Auth is that it supports both oauth and oauth2. What do you think @marcusramberg?
I also want to make this an optional module.
When I write "/me does stuff" on demo.convos.by, it output "ACTION does stuff".
Use of uninitialized value $method in pattern match (m//) at /home/wirc/convos/local/lib/perl5/Mojo/IRC.pm line 771.
Use of uninitialized value $method in concatenation (.) or string at /home/wirc/convos/local/lib/perl5/Mojo/IRC.pm line 772.
Mojo::Reactor::EV: Timer 882b7a57227b484b9476d43c4ff11d80 failed: Mojo::IOLoop::Delay: Can't call method "req" on an undefined value at /home/wirc/convos/local/lib/perl5/Mojolicious/Controller.pm line 261.
256: }
257: $self->tx->resume;
258: return $self;
259: }
260:
261: sub req { shift->tx->req }
262: sub res { shift->tx->res }
263:
264: sub respond_to {
265: my $self = shift;
266: my $args = ref $_[0] ? $_[0] : {@_};
Basically impossible to track down I guess, but seems like we're overreleasing something?
Test:
Write something in a channel
switch channel
Channel you wrote something in turns red.
Following the principle of least surprise.
If you write "& ;" in the input field, it gets converted to "&". It should say "&" instead.
I joined an irc server, opened #somechannel
and later quit the server, but the tab stayed. When I go to that tab and enter /close #somechannel
or /close
nothing happens. It would seem that I have to rejoin the irc server in order to close the tab?
It would be nice to have some other authentication mechanisms and LDAP in particular. I'm sure I'm not the only one keen on running something like this on a subnet far far away with sufficient infrastructure for user authentication.
We want to skip using the config file. The plan is to move the parameters to %ENV or redis:
In the /settings page: If I set the "Avatar" field to one of my gravatar email addresses and press "Update", the Avatar field is cleared, and no sign is given of success or failure of the operation.
CTCP replies, at the very least VERSION, should be included. VERSION is free advertising, kind of...!
For example:
irc.freenode.com
produces non working url (/%20irc.freenode.com). You also can't delete server.We should be able to add plugins to Convos that can extend with functionality such as karma: nick++, nick--
I guess this require more Mojo::EventEmitter code. One idea could be that Convos::Core is loading a list of plugins and each plugin can register events such as "connection_add", "connection_remove", ...
I found this missing dependency (Compress::Raw::Zlib) that caused the following output:
./vendor/bin/carton exec hypnotoad script/convos
Can't locate Compress/Raw/Zlib.pm in @INC (@INC contains: /usr/local/bin/../lib /home/convos/convos/local/lib/perl5 /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .) at /usr/local/share/perl5/Mojo/Content.pm line 5.
obviously this could be easily solved installing the required dependency but I don't know if this dependency should be added to the cpanfile.
I am also enclosing the perl -v, perl -V output. My OS is a Centos 6.5 fresh installed.
perl -v
This is perl, v5.10.1 (*) built for i386-linux-thread-multi
perl -V
Summary of my perl5 (revision 5 version 10 subversion 1) configuration:
Platform:
osname=linux, osvers=2.6.32-220.el6.x86_64, archname=i386-linux-thread-multi
uname='linux c6b8.bsys.dev.centos.org 2.6.32-220.el6.x86_64 #1 smp tue dec 6 19:48:22 gmt 2011 i686 i686 i386 gnulinux '
config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -DDEBUGGING=-g -Dversion=5.10.1 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl5 -Dsitearch=/usr/local/lib/perl5 -Dprivlib=/usr/share/perl5 -Darchlib=/usr/lib/perl5 -Dvendorlib=/usr/share/perl5/vendor_perl -Dvendorarch=/usr/lib/perl5/vendor_perl -Dinc_version_list=5.10.0 -Darchname=i386-linux-thread-multi -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -Dscriptdir=/usr/bin -Dusesitecustomize'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables',
cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.4.7 20120313 (Red Hat 4.4.7-4)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='gcc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=/lib/libc-2.12.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version='2.12'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/CORE'
cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS
USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API
USE_SITECUSTOMIZE
Built under linux
Compiled at Nov 22 2013 18:15:19
@INC:
/usr/local/lib/perl5
/usr/local/share/perl5
/usr/lib/perl5/vendor_perl
/usr/share/perl5/vendor_perl
/usr/lib/perl5
/usr/share/perl5
.
Want to store the data in Mongodb instead of Redis. Can't really remember why, but we have a lot of structured data, which would probably be good to save in MongoDB.
I would also like to change the structure of how to store conversations:
{
"message":"too cool!",
"nick":"batman",
"participants":[@user_id],
"target":"#mojo",
"timestamp": $not_sure,
...
}
The new thing here is "participants". That way we can keep the same stream of messages, but each convos user that is in the conversation at the given timestamp, will be in the "participants" list. That way it can be possible to open up conversations to people who was not there at the beginning.
Idea:
It would be super cool if Mandel had a redis backend, but I'm not quite sure how to do that. (yet)
Would like to have links to external resources in the README.md, Convos.pm and the web page:
What do you think?
Hi,
Looks like you've accidently included the tar.gz dist of version 0.1 (Convos-0.1.tar.gz) in the latest version
thanks,
Michael
Hi, I really enjoyed your project and I was trying to install it on OpenShift, from Red Hat.
I was able to create an app using perl-5.10 and redis (from a community cartridge), and I had to place the module Mojolicious::Plugin::AssetPack::Preprocessors in deplist.txt
The problem I'm having is this, just after starting the server:
==> perl/logs/error_log-20131212-000000-EST <==
[Thu Dec 12 09:43:53 2013] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:openshift_t:s0:c2,c347
[Thu Dec 12 09:43:53 2013] [notice] Digest: generating secret for digest authentication ...
[Thu Dec 12 09:43:53 2013] [notice] Digest: done
[Thu Dec 12 09:43:53 2013] [notice] Apache/2.2.22 (Unix) mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Thu Dec 12 09:45:34 2013] [debug] Reading config file "/var/lib/openshift/52a9bbd84382ec64230003a8/app-root/runtime/repo/perl/convos.conf".
[Thu Dec 12 09:45:34 2013] [error] [client 127.4.171.1] Error while loading /var/lib/openshift/52a9bbd84382ec64230003a8/app-root/runtime/repo/perl/script/convos: AssetPack missing preprocessors:\n- /var/lib/openshift/52a9bbd84382ec64230003a8/app-root/runtime/repo/perl/public/sass/main.scss\n
[Thu Dec 12 09:48:40 2013] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:openshift_t:s0:c2,c347
[Thu Dec 12 09:48:40 2013] [notice] Digest: generating secret for digest authentication ...
[Thu Dec 12 09:48:40 2013] [notice] Digest: done
[Thu Dec 12 09:48:41 2013] [notice] Apache/2.2.22 (Unix) mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
The server is telling that the file 'main.scss' can't be found. As you can notice the app resides on the path ''/var/lib/openshift/52a9bbd84382ec64230003a8/app-root/runtime/repo/perl" So I opened the convos.pm file and edited the line 198:
$self->asset('convos.css', '/sass/main.scss');
to
$self->asset('convos.css', '/var/lib/openshift/52a9bbd84382ec64230003a8/app-root/runtime/repo/perl/public/sass/main.scss');
but I still get the same error and the following message when the page is loaded:
==> perl/logs/error_log-20131212-000000-EST <==
[Thu Dec 12 09:49:46 2013] [debug] Reading config file "/var/lib/openshift/52a9bbd84382ec64230003a8/app-root/runtime/repo/perl/convos.conf".
[Thu Dec 12 09:49:46 2013] [error] [client 127.4.171.1] Error while loading /var/lib/openshift/52a9bbd84382ec64230003a8/app-root/runtime/repo/perl/script/convos: AssetPack missing preprocessors:\n- /var/lib/openshift/52a9bbd84382ec64230003a8/app-root/runtime/repo/perl/public/sass/main.scss\n
Any clue on how to resolve this?
If this can be resolved, I'm planning to post on my blog a 'how-to' on convos deployment on OpenShift.
Cheers from a fellow monger.
Felipe Leprevost
I'm trying to connect to irc.perl.org's secure port (irc.perl.org:7062), but when I attempt to select the "TLS" setting in the "Secure" field and press "Update", the setting is reset back to it's original "No".
This is tested on https://chat.thorsen.pm/
Seems the width calculation is off for some cases.
I'm trying to use Convos at a non '/' URL without much success. I've tried a couple of the recipes suggested in the Mojolicious guides without much luck - URL's do not get properly constructed and you end up at a 404 page.
Is there any chance this could be a supported configuration?
I would find it very useful - I have several web apps hosted behind a single domain name, each with their own path:
https://secure.host.com/webapp1/
https://secure.host.com/webapp2/
https://secure.host.com/webapp3/
These are all reverse-proxy'd by Apache.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.