Git Product home page Git Product logo

floyd's Introduction

floyd's People

Contributors

eastein avatar

Stargazers

Angus H. avatar  avatar

Watchers

 avatar James Cloos avatar

floyd's Issues

detect recognized/identity bound devices on network

General Concept

When a network device (such as a phone, tablet, or laptop) considered bound to a user is online, they user is considered online.

  • inspect DHCP leases, potentially
  • use NAT state table, potentially
  • opt in? opt out?
  • deduce by using the checkins from a user corellated with various "equipment presence traces" derived from network intelligence?
  • problems where users abuse the system to monitor others without their consent? Is this only an issue if it can be done without people on the IRC channel noticing? If so, a note must be made of this to avoid conflicts with any future feature that allows this system to be used except via IRC.

floyd fails to experience its own death with proper decorum

creating new irc connection
Traceback (most recent call last):
  File "./floyd", line 91, in <module>
    s.run()
  File "/home/toba/git/mediorc/mediorc.py", line 96, in run
    self.client.ircobj.process_once(0.2)
  File "/home/toba/git/python-irclib/irclib.py", line 214, in process_once
    self.process_data(i)
  File "/home/toba/git/python-irclib/irclib.py", line 183, in process_data
    c.process_data()
  File "/home/toba/git/python-irclib/irclib.py", line 600, in process_data
    self._handle_event(Event(command, prefix, target, arguments))
  File "/home/toba/git/python-irclib/irclib.py", line 604, in _handle_event
    self.irclibobj._handle_event(self, event)
  File "/home/toba/git/python-irclib/irclib.py", line 325, in _handle_event
    if handler[1](connection, event) == "NO MORE":
  File "/home/toba/git/python-irclib/irclib.py", line 1049, in _dispatcher
    getattr(self, m)(c, e)
  File "./floyd", line 67, in on_quit
    self.hm_out(e.source())
  File "./floyd", line 27, in hm_out
    self.nick_out(self.hm2nick(hm))
  File "./floyd", line 18, in nick_out
    del self.peeps[nick]
KeyError: 'chatmon'

work with multiple uplink IPs

In some situations, there is a bank of IPs that can be routed over for NAT connections.

  • specify as a list (of hostnames to look up, or IPs)
  • auto learn mode - any mask that the bot has found itself using in the last X days?
  • work with ipv6?
  • try getip services repeatedly?

I'll need to analyze the most common load balancing strategies for NAT exit nodes for this to make sense.

ipv6 support

  • detect in same routed block, assume /64 if not specified on command line
  • compare hosts on irc to own ipv4 and ipv6 at the same time
  • determine what ip is based on whether own machine's ipv6 address is globally routable

!page

Like !people, but doesn't say anything if it doesn't find anyone.

work with some masks

Work with:

  • freenode web gateway
  • cgi:irc with identd.pl (and anything else that encodes IP in the ident field)

ZeroMQ PUB API

Periodically and on-change, broadcast JSON via ZeroMQ PUB socket (bind side). Format should be:

{
  'users_present' : ['list', 'of', 'people']
}

The format is to allow easier extension of the API later. Future features may include things such as how long the user's been present, details about how the user is known to be present, etc.

Nickmask object problem

Traceback (most recent call last):
File "./floyd", line 165, in
s.run()
File "/home/eastein/venv/local/lib/python2.7/site-packages/mediorc/init.py", line 101, in run
self.client.ircobj.process_once(0.2)
File "/home/eastein/venv/local/lib/python2.7/site-packages/irc/client.py", line 261, in process_once
self.process_data(i)
File "/home/eastein/venv/local/lib/python2.7/site-packages/irc/client.py", line 218, in process_data
c.process_data()
File "/home/eastein/venv/local/lib/python2.7/site-packages/irc/client.py", line 578, in process_data
self._process_line(line)
File "/home/eastein/venv/local/lib/python2.7/site-packages/irc/client.py", line 668, in _process_line
self._handle_event(event)
File "/home/eastein/venv/local/lib/python2.7/site-packages/irc/client.py", line 672, in _handle_event
self.irclibobj._handle_event(self, event)
File "/home/eastein/venv/local/lib/python2.7/site-packages/irc/client.py", line 400, in _handle_event
result = handler.callback(connection, event)
File "/home/eastein/venv/local/lib/python2.7/site-packages/irc/client.py", line 1226, in _dispatcher
method(connection, event)
File "./floyd", line 94, in on_join
hm = e.source()
TypeError: 'NickMask' object is not callable

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.