mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-27 13:19:24 +01:00
Added some more documentation.
This commit is contained in:
parent
ade9514212
commit
29f0b638b2
@ -29,6 +29,13 @@
|
|||||||
# POSSIBILITY OF SUCH DAMAGE.
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
###
|
###
|
||||||
|
|
||||||
|
"""
|
||||||
|
Provides a great number of useful utility functions IRC. Things to muck around
|
||||||
|
with hostmasks, set bold or color on strings, IRC-case-insensitive dicts, a
|
||||||
|
nick class to handle nicks (so comparisons and hashing and whatnot work in an
|
||||||
|
IRC-case-insensitive fashion), and numerous other things.
|
||||||
|
"""
|
||||||
|
|
||||||
from fix import *
|
from fix import *
|
||||||
|
|
||||||
import re
|
import re
|
||||||
@ -115,6 +122,7 @@ def isIP(s):
|
|||||||
>>> isIP('abc.abc.abc.abc')
|
>>> isIP('abc.abc.abc.abc')
|
||||||
0
|
0
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if s.translate(string.ascii, _ipchars) == '':
|
if s.translate(string.ascii, _ipchars) == '':
|
||||||
quads = s.split('.')
|
quads = s.split('.')
|
||||||
if len(quads) <= 4:
|
if len(quads) <= 4:
|
||||||
@ -144,7 +152,8 @@ def banmask(hostmask):
|
|||||||
|
|
||||||
_argModes = 'ovhblkqe'
|
_argModes = 'ovhblkqe'
|
||||||
def separateModes(args):
|
def separateModes(args):
|
||||||
"""Separates modelines into single mode change tuples.
|
"""Separates modelines into single mode change tuples. Basically, you
|
||||||
|
should give it the .args of a MODE IrcMsg.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
@ -217,12 +226,13 @@ mircColors = {
|
|||||||
'light grey': 15,
|
'light grey': 15,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Offer a reverse mapping from integers to their associated colors.
|
||||||
for (k, v) in mircColors.items():
|
for (k, v) in mircColors.items():
|
||||||
if k is not None: # Ignore empty string for None.
|
if k is not None: # Ignore empty string for None.
|
||||||
mircColors[v] = k
|
mircColors[v] = k
|
||||||
|
|
||||||
def mircColor(s, fg=None, bg=None):
|
def mircColor(s, fg=None, bg=None):
|
||||||
"""Returns s, with the appropriate mIRC color codes applied."""
|
"""Returns s with the appropriate mIRC color codes applied."""
|
||||||
if fg is None and bg is None:
|
if fg is None and bg is None:
|
||||||
return s
|
return s
|
||||||
if fg is None or isinstance(fg, str):
|
if fg is None or isinstance(fg, str):
|
||||||
@ -234,8 +244,18 @@ def mircColor(s, fg=None, bg=None):
|
|||||||
bg = mircColors[bg]
|
bg = mircColors[bg]
|
||||||
return '\x03%s,%s%s\x03' % (fg, bg, s)
|
return '\x03%s,%s%s\x03' % (fg, bg, s)
|
||||||
|
|
||||||
def canonicalColor(s):
|
def canonicalColor(s, bg=False):
|
||||||
return mircColor(s, hash(s) % 14 + 2)
|
h = hash(s)
|
||||||
|
fg = h % 14 + 2 # The + 2 is to rule out black and white.
|
||||||
|
if bg:
|
||||||
|
bg = (h >> 4) & 3 # The 5th, 6th, and 7th least significant bits.
|
||||||
|
if fg < 8:
|
||||||
|
bg += 8
|
||||||
|
else:
|
||||||
|
bg += 2
|
||||||
|
return mircColor(s, fg, bg)
|
||||||
|
else:
|
||||||
|
return mircColor(s, fg)
|
||||||
|
|
||||||
def isValidArgument(s):
|
def isValidArgument(s):
|
||||||
"""Returns if s is strictly a valid argument for an IRC message."""
|
"""Returns if s is strictly a valid argument for an IRC message."""
|
||||||
@ -273,7 +293,7 @@ def shrinkList(L, sep='', limit=425):
|
|||||||
|
|
||||||
|
|
||||||
class nick(str):
|
class nick(str):
|
||||||
"""This class does case-insensitive comparisons of nicks."""
|
"""This class does case-insensitive comparison and hashing of nicks."""
|
||||||
def __init__(self, s):
|
def __init__(self, s):
|
||||||
self.original = s
|
self.original = s
|
||||||
self.lowered = toLower(s)
|
self.lowered = toLower(s)
|
||||||
|
Loading…
Reference in New Issue
Block a user