Giter Site home page Giter Site logo

kensanata / bitlbee Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bitlbee/bitlbee

1.0 3.0 0.0 5.56 MB

Abandoned: use the plugin instead!

Home Page: https://github.com/kensanata/bitlbee-mastodon

License: GNU General Public License v2.0

GDB 0.01% Vim Script 0.02% Makefile 0.98% C 98.62% Python 0.28% Perl 0.09%

bitlbee's Introduction

BitlBee

Build Status Coverity Scan Build Status

An IRC to other chat networks gateway

Main website: https://www.bitlbee.org/

Bug tracker: https://bugs.bitlbee.org/

Wiki: https://wiki.bitlbee.org/

License: GPLv2

Installation

BitlBee is available in the package managers of most distros.

For debian/ubuntu/etc you may use the nightly APT repository: https://code.bitlbee.org/debian/

You can also use a public server (such as im.bitlbee.org) instead of installing it: https://www.bitlbee.org/main.php/servers.html

Compiling

If you wish to compile it yourself, ensure you have the following packages and their headers:

  • glib 2.32 or newer (not to be confused with glibc)
  • gnutls
  • python 2 or 3 (for the user guide)

Some optional features have additional dependencies, such as libpurple, libotr, libevent, etc. NSS and OpenSSL are also available but not as well supported as GnuTLS.

Once you have the dependencies, building should be a matter of:

./configure
make
sudo make install

Development tips

  • To enable debug symbols: ./configure --debug=1
  • To get some additional debug output for some protocols: BITLBEE_DEBUG=1 ./bitlbee -Dnv
  • Use github pull requests against the 'develop' branch to submit patches.
  • The coding style based on K&R with tabs and 120 columns. See ./doc/uncrustify.cfg for the parameters used to reformat the code.
  • Mappings of bzr revisions to git commits (for historical purposes) are available in ./doc/git-bzr-rev-map
  • See also ./doc/README and ./doc/HACKING

Help?

Join #BitlBee on OFTC (irc.oftc.net) (OFTC, not freenode!)

bitlbee's People

Contributors

aelmahmoudy avatar ald avatar arcnmx avatar arkamar avatar debian-janitor avatar dequis avatar digitalcircuit avatar djnym avatar gmulders avatar iguanaonmystack avatar jcopenha avatar jelmer avatar jgeboski avatar jsegitz avatar kensanata avatar mhalden avatar mk-fg avatar pcrama avatar pekdon avatar pesco avatar pleia2 avatar radhermit avatar robert-scheck avatar seirl avatar seveas avatar sm00th avatar ulim avatar vmiklos avatar wilm0r avatar wpettersson avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

bitlbee's Issues

Handle media attachments

Perhaps we need to add URLs to the attachments if these URLs aren't already part of the Status text itself.

Sending new message prepends @

When starting a message with a word and a comma, this is always interpreted as a nick, e.g. "Oh, what?" → "@oh what?" (note how the comma disappears, too).

Better testing of memory issues when connecting to unreliable hosts

While I was testing Mastodon support, one of my accounts was on a host that was down. I then had memory issues involving the streaming API. I think the problem is that we're opening at least one streaming request, and doing other commands. The other commands fail, bitblee logs out, closes connections, and then the streaming request also aborts and closes the connection. This leads to multiple issues:

  • when closing the HTTP request, the SSL connection is freed twice
  • when the streaming function is called, the HTTP request or the IM connection is already freed

I think these problems should also happen when using Twitter with SSL and streaming API, but it's much rarer since Twitter is a reliable host. Once your hosts are unreliable, however, this will cause problems. These problems are particularly bad if we're using bitlbee on a public server.

Deduplicate Mentions

When mentioned in a toot by somebody we are following, we get both an update event with the status and a notification event with type mention containing the same status. The result:

	<neoanderthal> [1c->13] @neoanderthal mentioned you: @kensanata Sure -
		test your reports and I'll let you know how it's working.
	<neoanderthal> [1d->13] @kensanata Sure - test your reports and I'll
		let you know how it's working.

Ideally, we'd check mastodon_log_data for ids recently seen.

Hashtag reconnects

Is hashtag subscription using the streaming API working or does it needlessly reconnect every now and then, missing pings or something?

Allow temporary commands

I'd like to temporarily block and mute accounts and hashtags. A timer – or a restart – should undo the command after 24h, for example. We wouldn't save this state, so if bitlbee is restarted, this state is lost.

A reply all command

I'd like a reply all <id> <text> command which not only mentioned the author of the tweet but mentioned everybody in that tweet. Even better: reply all <id> – if no text is provided, it just lists the people so that I can copy & paste some.

Mute hashtags

I could implement this as part of the IRC client, or wait for the implementation of mastodon/mastodon#2453, or implement it in bitlbee. This would require us to save state, somehow.

More

When looking at an account timeline, we could save the Next link in mastodon_http_statuses in our mastodon_data and when the user issues the more command, call that URL with the same callback, mastodon_http_statuses.

IDs for replies when showing context and timelines

Here's a UI question: say we get Twitter/Mastodon messages with their ids, [00], [01], [02->01] (02 is a reply to 01), and so on. Now I have written a command that will redisplay the context of a message for Mastodon. These messages get added to the same channel. So if I use "context 02" it will show me messages 02 and its ancestor, 01.
This is what it will look like: [03], [04->01] (04 is still a reply to 01). So, should it say that 04 is a reply to 03, or should 03 and 04 actually just repeat the ids 01 and 02, since they are in fact the same messages we have already seen? I'm thinking that I'd like to do the second thing.
But then again, if 01 was the answer to a message I haven't seen yet, my log would look like this: [00], [01], [02->01], now we ask for "context 02" and it starts with the ancestors all the way up: [03], [01->03], [02->01], right? We reuse the ids for the known statuses and generate a new id for the previously unknown ids, and now they look out of order...

Real undo/redo

Whenever possible, every action should also post a matching undo action to a stack. Then we could implement decent undo and redo commands.

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.