Giter Site home page Giter Site logo

profanity-im / profanity Goto Github PK

View Code? Open in Web Editor NEW
1.3K 54.0 175.0 21.61 MB

Ncurses based XMPP client

Home Page: https://profanity-im.github.io/

License: Other

Shell 0.13% C 97.39% Makefile 0.62% M4 0.51% Python 1.35% Ruby 0.01%
xmpp-client c xmpp chat ncurses decentralization messenger messaging federation privacy

profanity's Introduction

profanity's People

Contributors

a1346054 avatar aaptel avatar alexandre1985 avatar asdil12 avatar backalor avatar binex-dsk avatar boothj5 avatar dav1d23 avatar debxwoody avatar dustinlagoy avatar h3rnand3zzz avatar ike08 avatar immae avatar incertia avatar jubalh avatar kaffeekanne avatar kmwhite avatar marcopolo-pastonmolo avatar mdosch avatar nandesu-utils avatar pasis avatar paulfariello avatar paulfertser avatar peterlvilim avatar quite avatar savar avatar sjaeckel avatar stefankropp avatar wstrm avatar xenrox 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

profanity's Issues

Bug: Duplicate presence notifications in UI (again)

The last changes to the contact list has reintroduced the bug where duplicate presence notifications appear in the UI.

For example the following may be received and will result in two of the same 'away' notifications:

<presence to="user@server" from="other@server/laptop">
    <show>away</show>
    <status>I'm not here right now</status>
    <c hash="sha-1" xmlns="http://jabber.org/protocol/caps" 
        ver="999AAA=" 
        node="http://pidgin.im/"/>
    <x xmlns="vcard-temp:x:update">
        <photo/>
    </x>
</presence>

<presence to="user@server" from="other@server/laptop">
    <show>away</show>
    <status>I'm not here right now</status>
    <query xmlns="jabber:iq:last" seconds="302"/>
    <c hash="sha-1" xmlns="http://jabber.org/protocol/caps" 
        ver="999AAA=" 
        node="http://pidgin.im/"/>
    <x xmlns="vcard-temp:x:update">
        <photo/>
    </x>
</presence>

The notification should only appear if the show, or status elements have changed.

Picking up messages after being offline does not show status

When you send a message to an offline user without a current chat window open for that user, a message is displayed indicating they are offline.

If you have been sent messages whilst offline, they are presented when you login, however there is no indication if the person who sent them is now offline. This would be useful information.

Feature: More comprehensive autocomplete

Autocomplete currently works for:

  • Command strings (/[command])
  • Login name (/connect [login])
  • Contacts (/msg [contact])

It should also be added for command parameters when they are known, for example:

  • /help [command] should autocomplete the command

Status bar disappears on terminal window resize.

Also any further input does not appear, and a bunch of random control characters are sent to the current chat recipient...

Need to handle terminal window resize explicitly by capturing the signal and redrawing.

Strange characters in log

The messages in profanity.log:

Starting profanity (X)
Connecting as X

Are showing strange characters for X.

The first should be the version, the second should be the user.

Segfault when editing history

  1. Start profanity
  2. Type something and press enter (add to history)
  3. Up arrow (start history session)
  4. Down arrow
  5. Type some test
  6. Up arrow
  7. Press enter

No disconnected message in chat windows

If something bad happens, the message "Login failed" goes to the console.

If in a chat window, you don't know about the error unless you go back to the console.

Something should appear in the chat window.

Can't compile with GLib version on Ubuntu 10.04

Error:

prof_autocomplete.c: In function ‘p_autocomplete_clear’:
prof_autocomplete.c:51: error: implicit declaration of function ‘g_slist_free_full’

GLib version:

2.24.1-0ubuntu1

Narrowing terminal window does not narrow chat window's text

When a terminal window hosting profanity is resized and narrowed, the profanity window is resized, but the chat history is not.

Any new incoming messages that are longer than the width of the window will run past the left edge of the window instead of wrapping.

Bug: Profanity requires both libxml2 and expat

This is a left over from early development. Profanity currently depends on libstrophe which will choose either libxml2 or expat depending on what is installed on the system.

Profanity however has both in its list of dependencies, this should be removed/fixed as it only has a direct dependency on libstrophe.

CTRL-C doesn't shutdown ncurses

Breaking out using CTRL-C doesn't call endwin() which means the terminal can be left in a mess.

Handle CTRL-C explicitly.

Feature: Package as tarball

Currently releases are done by simply creating a zip file on Github. More suitable for package maintainers would be a tarball.

Input restricted to input window size

When reaching the end of the input window the last character is continually overwritten.

The window should horizontal scroll and allow more input.

Bug: Quit when server problems can cause a segfault

Sometimes if the server goes down, or has problems, the \quit command results in sending a close stream but does not receive a close stream response from the server. After a timeout period, profanity exits with a segfault.

Include build number in development builds

Include some reference to the commit, when building a usual development build.

Should probably go in configure.in AC_INIT, and would need some commit hook. It would then appear in the version when started, or when running 'profanity -v' and 'profanity --version'.

Large incoming messages chopped

A large incoming message is chopped at a certain point and the next outgoing message is on the same line as the previous message (the incoming string is not null terminated).

BUG: profanity always exits with segfault when it is connected to a server

Steps to reproduce:

  1. run profanity
  2. /connect with a jid
  3. type /quit

The reason is in library libstrophe: xmpp_disconnect adds timed handler _disconnect_cleanup that frees conn structure. The handler always returns 0 (FALSE) and handler_fire_timed tries to delete it from the conn->timed_handlers. But conn is already destroyed!

Getting duplicated presence notifications

I get a lot of what appear to be duplicated presence notifications, e.g.

15:51 - ++ tony.walsh@framework is away, "I'm not here right now"
15:51 - ++ tony.walsh@framework is away, "I'm not here right now"

The log contains:

xmpp DEBUG: RECV: <presence to="james.booth@framework" from="tony.walsh@framework/407908c3"><show>away</show><status>I'm not here right now</status><c hash="sha-1" xmlns="http://jabber.org/protocol/caps" ver="I22W7CegORwdbnu0ZiQwGpxr0Go=" node="http://pidgin.im/"/><x xmlns="vcard-temp:x:update"><photo/></x></presence>
xmpp DEBUG: RECV: <presence to="james.booth@framework" from="tony.walsh@framework/407908c3"><show>away</show><status>I'm not here right now</status><query xmlns="jabber:iq:last" seconds="302"/><c hash="sha-1" xmlns="http://jabber.org/protocol/caps" ver="I22W7CegORwdbnu0ZiQwGpxr0Go=" node="http://pidgin.im/"/><x xmlns="vcard-temp:x:update"><photo/></x></presence>

Feature: Clear input line

The only way to clear the input line is to delete all characters.

Add a short cut to clear the input.

Session logging out when no activity

When there's no incoming or outgoing activity, console eventually shows "login failed" message.

Should at least show a different message, but ideally not timeout.

Contact list memory leak

Showing the contact list with '/who' sometimes shows contacts name (and status) as random memory, and can segfault.

Occasionally profanity with bomb out with a segfault, I'm assuming this is when a presence notification is received and the contact list is added to..

Man page, duplicate rows in config example

The man page contains the following in the config section:

[colours]
away=magenta
chat=yellow
xa=blue
online=white
dnd=red
offline=cyan
bkgnd=default
text=white
online=green
offline=red
err=red
inc=yellow
bar=green
bar_draw=black
bar_text=black

'online' and 'offline' should only appear once.

Screen flicker

There cursor flickers around the screen quite a bit before log in, and occasionally afterwards.

Configurable server ping

Currently a ping is sent to the server every 2 minutes to keep the connection alive. Make this configurable with:

/ping [seconds]

Where a value of 0 for seconds will disable the ping.

Can't compile with GCC version on Ubuntu 10.04

Building on Ubuntu 10.04 gives the following error:

cc1: error: unrecognized command line option "-Wno-unused-but-set-variable"

GCC version is:

gcc (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Feature: /disconnect command

Currently to log in as another account, you must exit and restart profanity.

A /disconnect command could disconnect the current session, allowing /connect to be used again.

Linker warnings not suppressed during make on Cygwin

The install works fine, but the following warnings appear when compiling on Cygwin:

gcc: -lstrophe: linker input file unused because linking not done
gcc: -lxml2: linker input file unused because linking not done
gcc: -lexpat: linker input file unused because linking not done
gcc: -lncurses: linker input file unused because linking not done
gcc: -lcurl: linker input file unused because linking not done
gcc: -lresolv: linker input file unused because linking not done
gcc: -lglib-2.0: linker input file unused because linking not done
gcc: -lintl: linker input file unused because linking not done
gcc: -lpcre: linker input file unused because linking not done
gcc: -lcurl: linker input file unused because linking not done
gcc: -lidn: linker input file unused because linking not done
gcc: -liconv: linker input file unused because linking not done
gcc: -llber: linker input file unused because linking not done
gcc: -lldap: linker input file unused because linking not done
gcc: -lgssapi: linker input file unused because linking not done
gcc: -lheimntlm: linker input file unused because linking not done
gcc: -lkrb5: linker input file unused because linking not done
gcc: -lhx509: linker input file unused because linking not done
gcc: -lcom_err: linker input file unused because linking not done
gcc: -lasn1: linker input file unused because linking not done
gcc: -lwind: linker input file unused because linking not done
gcc: -lheimbase: linker input file unused because linking not done
gcc: -lroken: linker input file unused because linking not done
gcc: -lcrypt: linker input file unused because linking not done
gcc: -lssh2: linker input file unused because linking not done
gcc: -lssl: linker input file unused because linking not done
gcc: -lcrypto: linker input file unused because linking not done
gcc: -lz: linker input file unused because linking not done

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.