Commit 6a198e7a authored by segfault's avatar segfault
Browse files

Remove pre-generated Pidgin accounts (refs: #16744)

parent 23863ff2
<?xml version='1.0' encoding='UTF-8' ?>
<account version='1.0'>
<account>
<protocol>prpl-irc</protocol>
<name>XXX_NICK_XXX@irc.oftc.net</name>
<statuses>
<status type='available' name='Available' active='true'>
<attributes/>
</status>
<status type='away' name='Away' active='false'>
<attributes/>
</status>
<status type='offline' name='Offline' active='false'>
<attributes/>
</status>
</statuses>
<settings>
<setting name='username' type='string'>XXX_NICK_XXX</setting>
<setting name='encoding' type='string'>UTF-8,ISO-8859-1</setting>
<setting name='realname' type='string'>XXX_NICK_XXX</setting>
<setting name='port' type='int'>6697</setting>
<setting name='ssl' type='bool'>1</setting>
</settings>
<settings ui='gtk-gaim'>
<setting name='auto-login' type='bool'>0</setting>
</settings>
<current_error/>
</account>
<account>
<protocol>prpl-irc</protocol>
<name>XXX_NICK_XXX@127.0.0.1</name>
<statuses>
<status type='available' name='Available' active='true'>
<attributes/>
</status>
<status type='away' name='Away' active='false'>
<attributes/>
</status>
<status type='offline' name='Offline' active='false'>
<attributes/>
</status>
</statuses>
<settings>
<setting name='username' type='string'>XXX_NICK_XXX</setting>
<setting name='encoding' type='string'>UTF-8,ISO-8859-1</setting>
<setting name='realname' type='string'>XXX_NICK_XXX</setting>
<setting name='port' type='int'>6668</setting>
<setting name='ssl' type='bool'>0</setting>
</settings>
<settings ui='gtk-gaim'>
<setting name='auto-login' type='bool'>0</setting>
</settings>
<proxy>
<type>none</type>
</proxy>
<current_error/>
</account>
</account>
<?xml version='1.0' encoding='UTF-8' ?>
<purple version='1.0'>
<privacy>
<account proto='prpl-irc' name='XXX_NICK_XXX@irc.oftc.net' mode='1'/>
</privacy>
</purple>
#!/bin/sh
# List of at least 2000 possible nicknames
NICKS_LIST=/usr/share/tails/firstnames.txt
# returns true with probability $1
prob()
{
# sh doesn't have bash's $RANDOM, so we implement it
RANDOM=$(expr $(od -Anv -N4 -tu4 /dev/urandom) % 32768)
# we compare with > instead of <= due to mismatch between bash and bc
# on what values true and false have.
return $(echo "scale = 10; ${RANDOM}/32767 > ${1}" | bc)
}
leet_nick()
{
# we leave the first letter due to restrictions on nicks in IRC
first=$(expr substr ${1} 1 1)
rest=${1#?}
rest=$(echo "${rest}" | tr 'e' '3' | tr 'i' '1' | tr 'o' '0')
echo "${first}${rest}"
}
generate_nick()
{
NICK=$(/usr/local/bin/lc.py -g 1 --min 4 --max 10 "${NICKS_LIST}")
if prob 0.90; then
NICK=$(echo "${NICK}" | tr '[:upper:]' '[:lower:]')
fi
if prob 0.05; then
if prob 0.50; then
NICK="${NICK}_"
else
NICK="${NICK}^"
fi
fi
if prob 0.05; then
NICK=$(leet_nick "${NICK}")
fi
echo ${NICK}
}
Configure_pidgin ()
{
echo "- configuring Pidgin"
NICK=$(generate_nick)
for file in accounts.xml blist.xml ; do
sudo -H -u "${LIVE_USERNAME}" sed -i'' "s,XXX_NICK_XXX,${NICK}," "/home/${LIVE_USERNAME}/.purple/${file}"
done
# Creating state file
touch /var/lib/live/config/pidgin
}
Configure_pidgin
#!/usr/bin/python3
# The MIT License
#
# Copyright (c) 2011 Christopher Pound
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
# lc.py -- language confluxer (http://www.ruf.rice.edu/~pound/lc.py)
#
# - Written by Christopher Pound (pound@rice.edu), July 1993.
# - Loren Miller suggested I make sure lc starts by picking a
# letter pair that was at the beginning of a data word, Oct 95.
# - Cleaned it up a little bit, March 95; more, September 01
# - Python version, Jul 09
#
# The datafile should be a bunch of words from some language
# with minimal punctuation or garbage (# starts a comment).
from optparse import OptionParser
import random
import re
import sys
class Pseudolanguage:
def __init__(self, **dict):
"""Set up a new pseudolanguage"""
dict.setdefault('name', '')
self.name = dict['name']
self.parsed = False
self.data = {}
self.inits = {}
self.pairs = {}
def incorporate(self, files):
"""Load list of files for this pseudolanguage into self.data"""
self.parsed = False
for f in files:
words = []
with open(f) as text:
for line in text:
line = line.strip()
line = re.sub(r"#.*", "", line)
words.extend(re.split(r"\s+", line))
self.data[f] = words
def delete(self, files):
"""Delete a list of languages from self.data"""
self.parsed = False
for f in files:
del self.data[f]
def parse(self):
"""Parse pseudolanguage's data into self.inits and self.pairs"""
if not self.parsed:
self.inits.clear()
self.pairs.clear()
for f in self.data:
for word in self.data[f]:
word += ' '
if len(word) > 3:
if word[0:2] in self.inits:
self.inits[word[0:2]].append(word[2:3])
else:
self.inits[word[0:2]] = [word[2:3]]
pos = 0
while pos < len(word)-2:
if word[pos:pos+2] in self.pairs:
self.pairs[word[pos:pos+2]].append(word[pos+2])
else:
self.pairs[word[pos:pos+2]] = [word[pos+2]]
pos = pos + 1
self.parsed = True
def dump(self):
"""Print the current parsed data; use pickle for inflatable dumps"""
self.parse()
print('name = """', self.name, '"""')
print("dump = { 'inits': ", self.inits, ",")
print("'pairs': ", self.pairs, " }")
def generate(self, number, min, max):
"""Generate list of words of min and max lengths"""
self.parse()
wordlist = []
while len(wordlist) < number:
word = random.choice(list(self.inits.keys()))
while word.find(' ') == -1:
word += random.choice(self.pairs[word[-2:]])
word = word.strip()
if len(word) >= min and len(word) <= max:
wordlist.append(word)
return wordlist
if __name__ == '__main__':
usage = "usage: %prog [options] datafile1 [datafile2 ...]"
parser = OptionParser(usage=usage, version="%prog 1.0")
parser.add_option("-d", "--dump", action="store_true",
dest="dump", default=False,
help="Dump internal representation of the pseudolanguage")
parser.add_option("-g", "--generate", type="int", dest="num",
help="Generate specified number of words")
parser.add_option("--min", type="int", dest="min", default=3,
help="Set the minimum length of each word")
parser.add_option("--max", type="int", dest="max", default=9,
help="Set the maximum length of each word")
parser.add_option("--name", dest="name", default=' ',
help="Set the name of the pseudolanguage")
(options, args) = parser.parse_args()
aLanguage = Pseudolanguage(name=options.name)
aLanguage.incorporate(args)
if options.dump:
aLanguage.dump()
else:
results = aLanguage.generate(options.num, options.min, options.max)
for word in results:
print(word)
Michael
Christopher
Jason
David
James
John
Robert
Brian
William
Matthew
Joseph
Daniel
Kevin
Eric
Jeffrey
Richard
Scott
Mark
Steven
Thomas
Timothy
Anthony
Charles
Joshua
Ryan
Jeremy
Paul
Andrew
Gregory
Chad
Kenneth
Jonathan
Stephen
Shawn
Aaron
Adam
Patrick
Justin
Sean
Edward
Todd
Donald
Ronald
Benjamin
Keith
Bryan
Gary
Jose
Nathan
Douglas
Brandon
Nicholas
George
Travis
Peter
Craig
Bradley
Larry
Dennis
Shane
Raymond
Troy
Jerry
Samuel
Frank
Jesse
Jeffery
Juan
Terry
Corey
Phillip
Marcus
Derek
Rodney
Joel
Carlos
Randy
Jacob
Jamie
Tony
Russell
Brent
Billy
Antonio
Derrick
Kyle
Erik
Johnny
Marc
Carl
Philip
Roger
Bobby
Brett
Danny
Curtis
Jon
Vincent
Cory
Jimmy
Victor
Lawrence
Dustin
Gerald
Walter
Joe
Alexander
Christian
Chris
Alan
Shannon
Wayne
Jared
Gabriel
Martin
Willie
Jay
Luis
Micheal
Henry
Wesley
Randall
Brad
Darren
Roy
Arthur
Albert
Ricky
Lance
Allen
Lee
Bruce
Andre
Mario
Frederick
Louis
Darrell
Damon
Shaun
Nathaniel
Zachary
Casey
Adrian
Jesus
Jeremiah
Jack
Ronnie
Dale
Tyrone
Manuel
Ricardo
Harold
Kelly
Barry
Reginald
Ian
Glenn
Ernest
Steve
Seth
Eugene
Clinton
Miguel
Tommy
Eddie
Leonard
Maurice
Roberto
Dwayne
Jerome
Ralph
Marvin
Francisco
Jorge
Neil
Alex
Dean
Kristopher
Calvin
Kurt
Theodore
Ruben
Jermaine
Tracy
Edwin
Stanley
Melvin
Howard
Mitchell
Duane
Trevor
Jeff
Geoffrey
Hector
Terrence
Terrance
Oscar
Jaime
Clifford
Harry
Kirk
Tyler
Jody
Greg
Earl
Angel
Daryl
Mathew
Heath
Clayton
Clarence
Karl
Raul
Alfred
Isaac
Javier
Wade
Mike
Luke
Ramon
Joey
Warren
Ray
Francis
Norman
Toby
Leon
Glen
Lonnie
Rafael
Cody
Pedro
Byron
Fred
Franklin
Omar
Fernando
Alejandro
Bernard
Clint
Darin
Gilbert
Andy
Lucas
Cedric
Alvin
Eduardo
Roderick
Armando
Don
Leroy
Darryl
Dana
Jessie
Cameron
Ross
Kelvin
Marco
Evan
Johnathan
Clifton
Fredrick
Vernon
Dominic
Lewis
Colin
Donnie
Damian
Rene
Stacy
Herbert
Sergio
Alberto
Leslie
Grant
Jonathon
Erick
Marlon
Julio
Ivan
Dwight
Micah
Darrin
Brendan
Spencer
Orlando
Nelson
Lloyd
Julian
Edgar
Marshall
Kent
Jarrod
Lamont
Kerry
Trent
Garrett
Gordon
Alfredo
Damien
Charlie
Stuart
Demetrius
Devin
Guy
Gene
Arturo
Rick
Bryant
Enrique
Cesar
Scotty
Jim
Neal
Jimmie
Johnnie
Jackie
Allan
Antoine
Ben
Marty
Bradford
Chadwick
Floyd
Noah
Jayson
Gerardo
Dan
Bret
Felix
Preston
Roland
Gregg
Angelo
Ted
Jordan
Blake
Freddie
Tyson
Israel
Leo
Lorenzo
Perry
Tim
Ethan
Rickey
Bill
Salvador
Noel