test start of file reading

This commit is contained in:
deathbybandaid 2019-06-28 09:36:36 -04:00
parent b4f577cee0
commit 5d1402d5c5
14 changed files with 794 additions and 34 deletions

View File

@ -7,3 +7,4 @@ recursive-include tests *
recursive-exclude * __pycache__
recursive-exclude * *.py[co]
recursive-include sopel_modules/SpiceBot_Configs/* *
recursive-include sopel_modules/SpiceBot_Text/*

View File

@ -104,7 +104,7 @@ class BotCommands():
return self.dict['disabled'][disabletype]["users"]
elif botchannels.check_channel_bot(target, True):
if not len(list(self.dict['disabled'][disabletype]["channels"])):
self.dict['disabled'][disabletype]["channels"] = botdb.get_channel_value(target, 'commands_disabled') or {}
self.dict['disabled'][disabletype]["channels"] = botdb.get_channel_value(target, 'commands_' + disabletype + 'disabled') or {}
return self.dict['disabled'][disabletype]["channels"]
else:
raise Exception(str(target.lower()) + " appears to not be a valid user/channel")
@ -128,14 +128,14 @@ class BotCommands():
}
if botdb.check_nick_id(target):
if not len(list(self.dict['disabled'][disabletype]["users"])):
self.dict['disabled'][disabletype]["users"] = botdb.get_nick_value(target, 'commands_disabled') or {}
self.dict['disabled'][disabletype]["users"] = botdb.get_nick_value(target, 'commands_' + disabletype + 'disabled') or {}
self.dict['disabled'][disabletype]["users"][command] = {"reason": reason, "timestamp": timestamp, "disabledby": bywhom}
botdb.set_nick_value(target, 'commands_disabled', self.dict['disabled'][disabletype]["users"])
botdb.set_nick_value(target, 'commands_' + disabletype + 'disabled', self.dict['disabled'][disabletype]["users"])
elif botchannels.check_channel_bot(target, True):
if not len(list(self.dict['disabled'][disabletype]["channels"])):
self.dict['disabled'][disabletype]["channels"] = botdb.get_channel_value(target, 'commands_disabled') or {}
self.dict['disabled'][disabletype]["channels"] = botdb.get_channel_value(target, 'commands_' + disabletype + 'disabled') or {}
self.dict['disabled'][disabletype]["channels"][command] = {"reason": reason, "timestamp": timestamp, "disabledby": bywhom}
botdb.set_channel_value(target, 'commands_disabled', self.dict['disabled'][disabletype]["channels"])
botdb.set_channel_value(target, 'commands_' + disabletype + 'disabled', self.dict['disabled'][disabletype]["channels"])
else:
raise Exception(str(target.lower()) + " appears to not be a valid user/channel")
@ -147,16 +147,16 @@ class BotCommands():
}
if botdb.check_nick_id(target):
if not len(list(self.dict['disabled'][disabletype]["users"])):
self.dict['disabled'][disabletype]["users"] = botdb.get_nick_value(target, 'commands_disabled') or {}
self.dict['disabled'][disabletype]["users"] = botdb.get_nick_value(target, 'commands_' + disabletype + 'disabled') or {}
if command in list(self.dict['disabled'][disabletype]["users"].keys()):
del self.dict['disabled'][disabletype]["users"][command]
botdb.set_nick_value(target, 'commands_disabled', self.dict['disabled'][disabletype]["users"])
botdb.set_nick_value(target, 'commands_' + disabletype + 'disabled', self.dict['disabled'][disabletype]["users"])
elif botchannels.check_channel_bot(target, True):
if not len(list(self.dict['disabled'][disabletype]["channels"])):
self.dict['disabled'][disabletype]["channels"] = botdb.get_channel_value(target, 'commands_disabled') or {}
self.dict['disabled'][disabletype]["channels"] = botdb.get_channel_value(target, 'commands_' + disabletype + 'disabled') or {}
if command in list(self.dict['disabled'][disabletype]["channels"].keys()):
del self.dict['disabled'][disabletype]["channels"][command]
botdb.set_channel_value(target, 'commands_disabled', self.dict['disabled'][disabletype]["channels"])
botdb.set_channel_value(target, 'commands_' + disabletype + 'disabled', self.dict['disabled'][disabletype]["channels"])
else:
raise Exception(str(target.lower()) + " appears to not be a valid user/channel")

View File

@ -11,10 +11,8 @@ from sopel.config.types import StaticSection, ListAttribute
from .Config import config as botconfig
from .Read import read as botread
from .Commands import commands as botcommands
from .Database import db as botdb
# import requests
from fake_useragent import UserAgent
# import urllib
import os
import copy
@ -27,7 +25,6 @@ class BotDictCommands():
def __init__(self):
self.setup_dictcoms()
self.header = {'User-Agent': str(UserAgent().chrome)}
self.valid_com_types = ['simple']
self.valid_com_types_old = [
'simple', 'fillintheblank', 'targetplusreason',
@ -129,9 +126,6 @@ class BotDictCommands():
else:
dict_from_file[mustbe]["type"] = "simple"
return dict_from_file
"""
# each usecase needs to know if it can be updated. Default is false
if "updates_enabled" not in list(dict_from_file[mustbe].keys()):
dict_from_file[mustbe]["updates_enabled"] = False
@ -180,9 +174,9 @@ class BotDictCommands():
if not isinstance(dict_from_file[mustbe]["response_fail"], list):
dict_from_file[mustbe]["response_fail"] = [dict_from_file[mustbe]["response_fail"]]
# if dict_from_file[mustbe]["updates_enabled"]:
# adjust_nick_array(bot, str(bot.nick), 'long', 'sayings', maincom + "_" + str(mustbe), dict_from_file[mustbe]["responses"], 'startup')
# dict_from_file[mustbe]["responses"] = get_nick_value(bot, str(bot.nick), 'long', 'sayings', maincom + "_" + str(mustbe)) or []
if dict_from_file[mustbe]["updates_enabled"]:
self.adjust_nick_array(str(botconfig.nick), 'sayings', maincom + "_" + str(mustbe), dict_from_file[mustbe]["responses"], 'startup')
dict_from_file[mustbe]["responses"] = botdb.get_plugin_value("dictcom", maincom + "_" + str(mustbe)) or []
# each usecase needs a response
if "responses" not in list(dict_from_file[mustbe].keys()):
@ -190,20 +184,17 @@ class BotDictCommands():
# verify responses are in list form
if not isinstance(dict_from_file[mustbe]["responses"], list):
# TODO read text files
# if dict_from_file[mustbe]["responses"] in bot.memory["botdict"]["tempvals"]['txt_files'].keys():
# dict_from_file[mustbe]["responses"] = bot.memory["botdict"]["tempvals"]['txt_files'][dict_from_file[mustbe]["responses"]]
if str(dict_from_file[mustbe]["responses"]).startswith(tuple(["https://", "http://"])):
try:
page = requests.get(dict_from_file[mustbe]["responses"], headers=self.header)
except Exception as e:
page = e
page = None
if page and not str(page.status_code).startswith(tuple(["4", "5"])):
htmlfile = urllib.request.urlopen(dict_from_file[mustbe]["responses"])
lines = htmlfile.read().splitlines()
dict_from_file[mustbe]["responses"] = lines
# text files
if dict_from_file[mustbe]["responses"] in list(botread.dict["text"].keys()):
dict_from_file[mustbe]["responses"] = botread.dict["text"][dict_from_file[mustbe]["responses"]]["lines"]
if str(dict_from_file[mustbe]["responses"]).startswith(tuple(["https://", "http://"])):
botread.webpage_to_list(dict_from_file[mustbe]["responses"])
# TODO assign dict value, but don't load until needed
# TODO use botdb to store an offline version
if dict_from_file[mustbe]["responses"] in list(botread.dict["webpage"].keys()):
dict_from_file[mustbe]["responses"] = botread.dict["webpage"][dict_from_file[mustbe]["responses"]]["lines"]
else:
dict_from_file[mustbe]["responses"] = [dict_from_file[mustbe]["responses"]]
@ -273,7 +264,34 @@ class BotDictCommands():
dict_from_file[mustbe]["privs"] = []
return dict_from_file
"""
def adjust_nick_array(nick, sortingkey, usekey, values, direction):
if not isinstance(values, list):
values = [values]
oldvalues = botdb.get_nick_value(nick, usekey, sortingkey) or []
# startup entries
if direction == 'startup':
if oldvalues == []:
direction == 'add'
else:
return
# adjust
for value in values:
if direction == 'add':
if value not in oldvalues:
oldvalues.append(value)
elif direction == 'startup':
if value not in oldvalues:
oldvalues.append(value)
elif direction in ['del', 'remove']:
if value in oldvalues:
oldvalues.remove(value)
botdb.set_nick_value(nick, usekey, oldvalues, sortingkey)
def setup_dictcoms(self):
botconfig.define_section("SpiceBot_DictComs", SpiceBot_DictComs_MainSection, validate=False)

View File

@ -6,6 +6,9 @@ import sopel_modules
import os
import codecs
import requests
import urllib
from fake_useragent import UserAgent
from .Logs import logs
from .Config import config as botconfig
@ -14,7 +17,46 @@ from .Config import config as botconfig
class BotRead():
def __init__(self):
self.dict = dict()
self.header = {'User-Agent': str(UserAgent().chrome)}
self.dict = {
"text": {},
"webpage": {},
}
self.load_txt_files()
def load_txt_files(self):
dir_to_scan = []
for plugin_dir in set(sopel_modules.__path__):
textdir = os.path.join(plugin_dir, "SpiceBot_Text")
if os.path.exists(textdir) and os.path.isdir(textdir):
if len(os.listdir(textdir)) > 0:
dir_to_scan.append(textdir)
# iterate over files within
for directory in dir_to_scan:
for txtfile in os.listdir(directory):
text_file_list = []
text_file = open(os.path.join(directory, txtfile), 'r')
lines = text_file.readlines()
for line in lines:
text_file_list.append(line)
text_file.close()
self.dict["text"][txtfile] = {
"lines": text_file_list
}
def webpage_to_list(self, url):
try:
page = requests.get(url, headers=self.header)
except Exception as e:
page = e
page = None
if page and not str(page.status_code).startswith(tuple(["4", "5"])):
htmlfile = urllib.request.urlopen(url)
lines = htmlfile.read().splitlines()
self.dict["webpage"][url] = {
"lines": lines
}
def get_config_dirs(self, config_dir_name):
dir_to_scan = []

View File

@ -0,0 +1,20 @@
You make people feel good about themselves.
You're such a good listener.
You're really going to make a difference in the world someday.
I'm so glad I met you.
I never get tired of being around you.
You make people feel important.
You're so understanding.
I feel like I can tell you anything.
You're a strong person.
You're so good at being creative.
You can lead people without being bossy.
Your happiness is contagious.
Our conversations always make me feel better.
I can always count on you to be there for me.
It's amazing how far out of your way you go to help people.
You're a selfless person.
You are always so much fun to be around.
You can make people laugh on their worst days.
You're so good at making people feel welcome.
I couldn't imagine my life without you.

View File

@ -0,0 +1,4 @@
ham
cheese
steak
meatloaf

View File

@ -0,0 +1,145 @@
It was working in my head
Even though it doesn't work, how does it feel?
Oh, you said you DIDN'T want that to happen?
THIS can't be the source of THAT
I thought he knew the context of what I was talking about
I can have a look but there's a lot of if statements in that code!
It works, but it's not been tested
The accounting department must have cancelled that subscription
The marketing department made us put that there
I couldn't find any examples of how that can be done anywhere else in the project
Oh, that was only supposed to be a placeholder
That's not a bug it's a configuration issue
It must be because of a leap second
I'm not getting any error codes
It's just some unlucky coincidence
I haven't been able to reproduce that
I forgot to commit the code that fixes that
It would have taken twice as long to build it properly
What did I tell you about using parts of the system you don't understand?
I didn't create that part of the program
I must have been stress testing our production server
Our hardware is too slow to cope with demand
I thought I finished that
The original specification contained conflicting requirements
That isn't covered by my job description
There was too little data to bother with the extra functionality at the time
Maybe somebody forgot to pay our hosting company
That wouldn't be economically feasible
I didn't anticipate that I would make any errors
Well, at least it displays a very pretty error
It's never done that before
I thought I fixed that
You're doing it wrong
It's not a code problem - our users need more training
Our code quality is no worse than anyone else in the industry
Well done, you found my easter egg!
It's a third party application issue
I can't test everything
I'm not familiar with it so I didn't fix it in case I made it worse
There were too many developers working on that same thing
I can't make that a priority right now
That feature would be outside of the scope
I haven't had any experience with that before
I have never seen that before in my life
Why do you want to do it that way?
It's never shown unexpected behaviour like this before
That important email must have been marked as spam
There's currently a problem with our hosting company
It would take too long to rewrite the code from scratch
I'm surprised that was working at all
The specifications were ambiguous
I have too many other high priority things to do right now
I thought you signed off on that?
You must have the wrong version
How is that possible?
Did you check for a virus on your system?
The existing design makes it difficult to do the right thing
I had to do the project backwards as people demanded results out of order
The request must have dropped some packets
That was literally a one in a million error
I'll have to fix that at a later date
We spent three months debugging it because we only had one month to build it
That behaviour is in the original specification
It worked yesterday
The user must not know how to use it
Don't worry, that value is only wrong half of the time
It's a known bug with the server software
Well at least we know not to try that again
The program has never collected that information
In the interest of efficiency I only check my email for that on a Friday
The third party API is not responding
My time was split in a way that meant I couldn't do either project properly
That worked perfectly when I developed it
The third party documentation is wrong
This is a previously known bug you told me not to work on yet
Nobody asked me how long it would actually take
That code was written by the last guy
I heard there was a solar flare today
You must be missing some of the dependencies
I haven't touched that code in weeks
It's a known bug with the programming language
Our internet connection must not be working
The WYSIWYG must have produced an invalid output
It must be a firewall issue
Well, that's a first
I did a quick fix last time but it broke when we rebooted
It must be because of a leap year
The problem seems to be with our legacy software
The third party documentation doesn't exist
It can't be broken, it passes all unit tests
I told you yesterday it would be done by the end of today
The client wanted it changed at the last minute
We didn't have enough time to peer review the final changes
The project manager said no one would want that feature
I usually get a notification when that happens
You can't use that version on your system
I was just fixing that
It's always been like that
It's a remote vendor issue
I'm surprised it works as well as it does
This code was not supposed to go in to production yet
I haven't had the chance to run that code yet
Your browser must be caching the old content
Everything looks fine my end
It's a browser compatibility issue
It works for me
I broke that deliberately to do some testing
That feature was slated for phase two
Actually, that's a feature
Oh, that was just a temporary fix
That code seemed so simple I didn't think it needed testing
You must have done something wrong
There must be something strange in your data
The unit test doesn't cover that eventuality
The client must have been hacked
It's a character encoding issue
The project manager told me to do it that way
It must be a hardware problem
That process requires human oversight that nobody was providing
I was told to stop working on that when something important came up
I couldn't find any examples of how that can be done anywhere online
I couldn't find any library that can even do that
Management insisted we wouldn't need to waste our time writing unit tests
I must not have understood what you were asking for
It probably won't happen again
It's an unexpected emergent behaviour of several last minute abstractions
Somebody must have changed my code
The code is compiling
That's already fixed it just hasn't taken effect yet
We outsourced that months ago
That wasn't in the original specification
That's the fault of the graphic designer
That's interesting, how did you manage to make it do that?
That error means it was successful
I'm not sure as I've never had a look at how that works before
I'm still working on that as we speak
Where were you when the program blew up?
Our redundant systems must have failed as well
The download must have been corrupted
No one told me so I was forced to assume which way to do that
The person responsible doesn't work here anymore
I didn't receive a ticket for it
What did you type in wrong to get it to crash?
We should have updated our software years ago
Nobody has ever complained about it

View File

@ -0,0 +1,285 @@
1 "Once you have their money, you never give it back." "The Nagus" (DS9 episode)
2 "The best deal is the one that makes the most profit." The 34th Rule (DS9 novel)
3 "Never spend more for an acquisition than you have to." "The Maquis, Part II" (DS9 episode)
4 "A woman wearing clothes is like a man in the kitchen." The Ferengi Rules of Acquisition (DS9 novel)
5 "Always exaggerate your estimates." Cold Fusion (SCE novel)
6 "Never let family stand in the way of opportunity." "The Nagus" (DS9 episode)
7 "Always keep your ears open." "In the Hands of the Prophets" (DS9 episode)
8 "Small print leads to large risk." The Ferengi Rules of Acquisition (DS9 novel)
9 "Instinct, plus opportunity, equals profit." "The Storyteller" (DS9 episode)
10 "Greed is eternal." "Prophet Motive" (VOY episode)
11 "Even if its free, you can always buy it cheaper." The Ferengi Rules of Acquisition (DS9 novel)
12 "Anything worth selling is worth selling twice." The Ferengi Rules of Acquisition (DS9 novel)
13 "Anything worth doing is worth doing for money." Legends of the Ferengi (DS9 novel)
14 There is no cannonized rule tied to this number
15 "Dead men close no deals." Demons of Air and Darkness (DS9 novel)
16 "A deal is a deal (is a deal)...until a better one comes along." The Ferengi Rules of Acquisition (DS9 novel)
17 "A contract is a contract is a contract... but only between Ferengi." "Body Parts" (DS9 episode)
18 "A Ferengi without profit is no Ferengi at all." "Heart of Stone" (DS9 episode)
19 "Satisfaction is not guaranteed." Legends of the Ferengi (DS9 novel)
20 "He who dives under the table today lives to profit tomorrow." Ferenginar: Satisfaction is Not Guaranteed (DS9 novella)
21 "Never place friendship before profit." "Rules of Acquisition" (DS9 episode)
22 "Wise men can hear profit in the wind." "Rules of Acquisition" (DS9 episode)
23 "Nothing is more important than your health...except for your money." "Acquisition" (ENT episode)
24 There is no cannonized rule tied to this number
25 "You can't make a deal if you're dead." "The Siege of Ar-558" (DS9 episode)
26 There is no cannonized rule tied to this number
27 "There's nothing more dangerous than an honest businessman." Legends of the Ferengi (DS9 novel)
28 There is no cannonized rule tied to this number
29 "What's in it for me?" Highest Score (DS9 novel)
30 "A wise man knows that confidentiality equals profit." The Badlands, Part IV (DS9 novel)
31 "Never make fun of a Ferengi's mother." "The Siege" (DS9 episode)
32 "Insult something he cares about." "Elite Force II"
33 "It never hurts to suck up to the boss." "Rules of Acquisition" (DS9 episode)
34 "War is good for business." "Destiny" (DS9 episode); The 34th Rule (DS9 novel)
35 "Peace is good for business." "Destiny" (DS9 episode); The 34th Rule (DS9 novel)
36 There is no cannonized rule tied to this number
37 "The early investor reaps the most interest." ST novella: Reservoir Ferengi
38 There is no cannonized rule tied to this number
39 There is no cannonized rule tied to this number
40 "She can touch your lobes but never your latinum." The Ferengi Rules of Acquisition (DS9 novel)
41 "Profit is its own reward." The Ferengi Rules of Acquisition (DS9 novel)
42 There is no cannonized rule tied to this number
43 "Feed your greed, but not enough to choke it." The Buried Age (TNG novel)
44 "Never confuse wisdom with luck." The Ferengi Rules of Acquisition (DS9 novel)
45 "Expand or die.*" "Acquisition" (ENT episode)
46 There is no cannonized rule tied to this number
47 "Never trust a man wearing a better suit than your own." "Rivals" (DS9 episode)
48 "The bigger the smile, the sharper the knife." "Rules of Acquisition" (DS9 episode)
49 There is no cannonized rule tied to this number
50 There is no cannonized rule tied to this number
51 There is no cannonized rule tied to this number
52 "Never ask when you can take." The Ferengi Rules of Acquisition (DS9 novel)
53 "Never trust anybody taller than you." Mission Gamma: Twilight (DS9 novel)
54 "Rate divided by time equals profit." (Also known as "The Velocity of Wealth.") Raise the Dawn (Typhon Pact novel)
55 "Take joy from profit, and profit from joy." Worlds of Deep Space Nine: Bajor: Fragments and Omens (DS9 novel)
56 There is no cannonized rule tied to this number
57 "Good customers are almost as rare as latinum...treasure them." "Armageddon Game" (DS9 episode)
58 "There is no substitute for success." The Ferengi Rules of Acquisition (DS9 novel)
59 "Free advice is seldom cheap." "Rules of Acquisition" (DS9 episode)
60 "Keep your lies consistent." The Ferengi Rules of Acquisition (DS9 novel)
61 There is no cannonized rule tied to this number
62 "The riskier the road, the greater the profit." "Rules of Acquisition" (DS9 episode)
63 "Work is the best therapy-at least for your employees." "Over a Torrent Sea" (TTN novel)
64 There is no cannonized rule tied to this number
65 "Win or lose, there's always Hupyrian beetle snuff." The Ferengi Rules of Acquisition (DS9 novel)
66 There is no cannonized rule tied to this number
67 There is no cannonized rule tied to this number
68 There is no cannonized rule tied to this number
69 "Ferengi are not responsible for the stupidity of other races." Balance of Power (TNG novel)
70 There is no cannonized rule tied to this number
71 There is no cannonized rule tied to this number
72 There is no cannonized rule tied to this number
73 There is no cannonized rule tied to this number
74 "Knowledge equals profit." "Inside Man" (VOY episode)
75 "Home is where the heart is, but the stars are made of latinum." "Civil Defense" (DS9 episode)
76 "Every once in a while, declare peace. It confuses the Hell out of your enemies." "The Homecoming" (DS9 episode)
77 "If you break it, you bought it." Star Trek Online
78 There is no cannonized rule tied to this number
79 "Beware of the Vulcan greed for knowledge." The Ferengi Rules of Acquisition (DS9 novel)
80 There is no cannonized rule tied to this number
81 There is no cannonized rule tied to this number
82 "The flimsier the product, the higher the price." The Ferengi Rules of Acquisition (DS9 novel)
83 There is no cannonized rule tied to this number
84 There is no cannonized rule tied to this number
85 "Never let the competition know what you're thinking." The Ferengi Rules of Acquisition (DS9 novel)
86 There is no cannonized rule tied to this number
87 "Learn the customer's weaknesses, so that you can better take advantage of him." Highest Score (DS9 novel)
88 "It ain't over 'til its over." Ferenginar: Satisfaction is Not Guaranteed (DS9 novella)
89 "Ask not what you can do for your profits, but what your profits can do for you." The Ferengi Rules of Acquisition (DS9 novel)
90 There is no cannonized rule tied to this number
91 There is no cannonized rule tied to this number
92 "There are many paths to profit." Highest Score (DS9 novel)
93 There is no cannonized rule tied to this number
94 "Females and finances don't mix." "Ferengi Love Songs" (DS9 episode)
95 "Expand or die.*" "False Profits" (VOY episode)
96 There is no cannonized rule tied to this number
97 "Enough...is never enough." The Ferengi Rules of Acquisition (DS9 novel)
98 "Every man has his price." "In the Pale Moonlight" (DS9 episode)
99 "Trust is the biggest liability of all." The Ferengi Rules of Acquisition (DS9 novel)
100 There is no cannonized rule tied to this number
101 There is no cannonized rule tied to this number
102 "Nature decays, but latinum lasts forever." "The Jem'Hadar" (DS9 episode)
103 "Sleep can interfere with..." "Rules of Acquisition" (DS9 episode)
104 "Faith moves mountains...of inventory." The Ferengi Rules of Acquisition (DS9 novel)
105 There is no cannonized rule tied to this number
106 "There is no honor in poverty." The Ferengi Rules of Acquisition (DS9 novel)
107 There is no cannonized rule tied to this number
108 There is no cannonized rule tied to this number
109 "Dignity and an empty sack is worth the sack." "Rivals" (DS9 episode)
110 "Exploitation begins at home." Star Trek Online
111 "Treat people in your debt like family... exploit them." "Past Tense, Part I" (DS9 episode)
112 "Never have sex with the boss' sister." "Playing God" (DS9 episode)
113 "Always have sex with the boss." The Ferengi Rules of Acquisition (DS9 novel)
114 There is no cannonized rule tied to this number
115 There is no cannonized rule tied to this number
116 There is no cannonized rule tied to this number
117 There is no cannonized rule tied to this number
118 There is no cannonized rule tied to this number
119 There is no cannonized rule tied to this number
120 There is no cannonized rule tied to this number
121 "Everything is for sale - even friendship." The Ferengi Rules of Acquisition (DS9 novel)
122 There is no cannonized rule tied to this number
123 "Even a blind man can recognize the glow of Latinum." The Ferengi Rules of Acquisition (DS9 novel)
124 There is no cannonized rule tied to this number
125 "You can't make a deal if you're dead." "The Siege of AR-558" (DS9 episode)
126 There is no cannonized rule tied to this number
127 There is no cannonized rule tied to this number
128 There is no cannonized rule tied to this number
129 There is no cannonized rule tied to this number
130 There is no cannonized rule tied to this number
131 There is no cannonized rule tied to this number
132 There is no cannonized rule tied to this number
134 There is no cannonized rule tied to this number
135 There is no cannonized rule tied to this number
136 There is no cannonized rule tied to this number
137 There is no cannonized rule tied to this number
138 There is no cannonized rule tied to this number
139 There is no cannonized rule tied to this number
139 "Wives serve; brother inherit." "Necessary Evil" (DS9 episode)
140 There is no cannonized rule tied to this number
141 "Only fools pay retail." The Ferengi Rules of Acquisition (DS9 novel)
142 There is no cannonized rule tied to this number
143 There is no cannonized rule tied to this number
144 "There's nothing wrong with charity... as long as it winds up in your pocket." Legends of the Ferengi (DS9 novel)
145 There is no cannonized rule tied to this number
146 There is no cannonized rule tied to this number
147 "People love the bartender." Fearful Symmetry (DS9 novel)
148 There is no cannonized rule tied to this number
149 There is no cannonized rule tied to this number
150 There is no cannonized rule tied to this number
151 There is no cannonized rule tied to this number
152 There is no cannonized rule tied to this number
153 "Sell the sizzle, not the steak." "Deep Space Mine" (DS9 comic)
154 There is no cannonized rule tied to this number
156 There is no cannonized rule tied to this number
157 There is no cannonized rule tied to this number
158 There is no cannonized rule tied to this number
159 There is no cannonized rule tied to this number
160 There is no cannonized rule tied to this number
170 There is no cannonized rule tied to this number
171 There is no cannonized rule tied to this number
162 "Even in the worst of times, someone turns a profit." The Ferengi Rules of Acquisition (DS9 novel)
163 There is no cannonized rule tied to this number
164 There is no cannonized rule tied to this number
165 There is no cannonized rule tied to this number
166 There is no cannonized rule tied to this number
167 There is no cannonized rule tied to this number
168 "Whisper your way to success." "Treachery, Faith, and the Great River" (DS9 episode)
169 There is no cannonized rule tied to this number
170 There is no cannonized rule tied to this number
171 There is no cannonized rule tied to this number
172 There is no cannonized rule tied to this number
173 There is no cannonized rule tied to this number
174 There is no cannonized rule tied to this number
175 There is no cannonized rule tied to this number
176 There is no cannonized rule tied to this number
177 "Know your enemies... but do business with them always." The Ferengi Rules of Acquisition (DS9 novel)
178 There is no cannonized rule tied to this number
179 There is no cannonized rule tied to this number
180 There is no cannonized rule tied to this number
181 "Not even dishonesty can tarnish the shine of profit." The Ferengi Rules of Acquisition (DS9 novel)
182 There is no cannonized rule tied to this number
183 "When life hands you ungaberries, make detergent." Hollow Men (DS9 novel)
184 "A Ferengi waits to bid until his opponents have exhausted themselves." Balance of Power (TNG novel)
185 There is no cannonized rule tied to this number
186 There is no cannonized rule tied to this number
187 There is no cannonized rule tied to this number
188 "Not even dishonesty can tarnish the shine of profit." Star Trek Online
189 "Let others keep their reputation. You keep their money." The Ferengi Rules of Acquisition (DS9 novel)
190 "Hear all, trust nothing." DS9 episode: "Call to Arms"
191 There is no cannonized rule tied to this number
192 "Never cheat a Klingon... unless you're sure you can get away with it." The Ferengi Rules of Acquisition (DS9 novel)
193 "Trouble comes in threes." Star Trek Online
194 "It's always good business to know about new customers before they walk in your door." "Whispers" (DS9 episode)
195 There is no cannonized rule tied to this number
196 There is no cannonized rule tied to this number
197 There is no cannonized rule tied to this number
198 There is no cannonized rule tied to this number
199 "Location, location, location." The Soul Key (DS9 novel)
200 "A Ferengi chooses no side but his own" (DS9 novel: Ferenginar: Satisfaction is Not Guaranteed)
201 There is no cannonized rule tied to this number
202 "The justification for profit is profit." The Ferengi Rules of Acquisition (DS9 reference book)
203 "New customers are like razor-toothed gree worms. They can be succulent, but sometimes they bite back." DS9 episode: "Little Green Men"
204 There is no cannonized rule tied to this number
205 There is no cannonized rule tied to this number
206 There is no cannonized rule tied to this number
207 There is no cannonized rule tied to this number
208 "Sometimes, the only thing more dangerous than a question is an answer." DS9 episode: "Ferengi Love Songs"
209 There is no cannonized rule tied to this number
210 There is no cannonized rule tied to this number
211 "Employees are the rungs on the ladder of success, don't hesitate to step on them." DS9 episode: "Bar Association"
212 "A good lie is easier to believe than the truth." Star Trek Online
213 There is no cannonized rule tied to this number
214 "Never begin a business transaction on an empty stomach." DS9 episode: "The Maquis, Part I"
215 There is no cannonized rule tied to this number
216 "Never gamble with a telepath." DS9 novel: The Laertian Gamble
217 "You can't free a fish from water." DS9 episode: "Past Tense, Part I"
218 "Always know what you're buying." The Ferengi Rules of Acquisition (DS9 reference book) OR 218 "Sometimes what you get free cost entirely too much." Baby on Board (DS9 Malibu Comics)
219 "Possession is eleven-tenths of the law!" TNG novel: Balance of Power
220 There is no cannonized rule tied to this number
221 There is no cannonized rule tied to this number
222 There is no cannonized rule tied to this number
223 "Beware the man who doesn't take time for Oo-mox." The Ferengi Rules of Acquisition (DS9 reference book)
224 There is no cannonized rule tied to this number
225 There is no cannonized rule tied to this number
226 There is no cannonized rule tied to this number
227 "If that's what's written, then that's what's written." Star Trek Online
228 There is no cannonized rule tied to this number
229 "Latinum lasts longer than lust." DS9 episode: "Ferengi Love Songs"
230 There is no cannonized rule tied to this number
231 There is no cannonized rule tied to this number
232 There is no cannonized rule tied to this number
233 There is no cannonized rule tied to this number
234 There is no cannonized rule tied to this number
235 "Duck; death is tall." Mission Gamma: Twilight (DS9 novel)
236 "You can't buy fate." The Ferengi Rules of Acquisition (DS9 reference book)
237 There is no cannonized rule tied to this number
238 There is no cannonized rule tied to this number
239 "Never be afraid to mislabel a product." DS9 episode: "Body Parts"
240 "Time, like latinum, is a highly limited commodity." Star Trek Online
241 There is no cannonized rule tied to this number
242 "More is good...all is better." The Ferengi Rules of Acquisition (DS9 reference book)
243 There is no cannonized rule tied to this number
244 There is no cannonized rule tied to this number
245 There is no cannonized rule tied to this number
246 There is no cannonized rule tied to this number
247 There is no cannonized rule tied to this number
248 There is no cannonized rule tied to this number
249 There is no cannonized rule tied to this number
250 There is no cannonized rule tied to this number
251 There is no cannonized rule tied to this number
252 There is no cannonized rule tied to this number
253 There is no cannonized rule tied to this number
254 There is no cannonized rule tied to this number
255 "A wife is [a] luxury... a smart accountant a neccessity." The Ferengi Rules of Acquisition (DS9 reference book)
256 There is no cannonized rule tied to this number
257 "When the messenger comes to appropriate your profits, kill the messenger." False Profits (Voyager)
258 There is no cannonized rule tied to this number
259 There is no cannonized rule tied to this number
260 There is no cannonized rule tied to this number
261 "A wealthy man can afford everything except a conscience." The Ferengi Rules of Acquisition (DS9 reference book)
262 There is no cannonized rule tied to this number
263 "Never let doubt interfere with your lust for Latinum." DS9 episode: "Bar Association"
264 There is no cannonized rule tied to this number
265 There is no cannonized rule tied to this number
266 "When in doubt, lie." The Ferengi Rules of Acquisition (DS9 reference book)
267 There is no cannonized rule tied to this number
268 There is no cannonized rule tied to this number
269 There is no cannonized rule tied to this number
270 There is no cannonized rule tied to this number
271 There is no cannonized rule tied to this number
272 "Always inspect the merchandise before making a deal." Star Trek Online
273 There is no cannonized rule tied to this number
274 There is no cannonized rule tied to this number
275 There is no cannonized rule tied to this number
276 There is no cannonized rule tied to this number
277 There is no cannonized rule tied to this number
278 There is no cannonized rule tied to this number
279 There is no cannonized rule tied to this number
280 "If it ain't broke, don't fix it." DS9 novel: Ferenginar: Satisfaction is Not Guaranteed)
281 There is no cannonized rule tied to this number
282 There is no cannonized rule tied to this number
283 There is no cannonized rule tied to this number
284 "Deep down, everyone's a Ferengi." The Ferengi Rules of Acquisition (DS9 reference book)
285 "No good deed ever goes unpunished." DS9 episode: "The Collaborator"

View File

@ -0,0 +1,47 @@
1 "Do not talk about /b/"
2 "Do NOT talk about /b/"
3 "We are Anonymous"
4 "Anonymous is legion"
5 "Anonymous never forgives"
6 "Anonymous can be a horrible, senseless, uncaring monster"
7 "Anonymous is still able to deliver"
8 "There are no real rules about posting"
9 "There are no real rules about moderation either - enjoy your ban"
10 "If you enjoy any rival sites - DON'T"
11 "All your carefully picked arguments can easily be ignored"
12 "Anything you say can and will be used against you"
13 "Anything you say can be turned into something else - fixed"
14 "Do not argue with trolls - it means that they win"
15 "The harder you try the harder you will fail"
16 "If you fail in epic proportions, it may just become a winning failure"
17 "Every win fails eventually"
18 "Everything that can be labeled can be hated"
19 "The more you hate it the stronger it gets"
20 "Nothing is to be taken seriously
21 "Original content is original only for a few seconds before getting old"
22 "Copypasta is made to ruin every last bit of originality"
23 "Copypasta is made to ruin every last bit of originality"
24 "Every repost it always a repost of a repost"
25 "Relation to the original topic decreases with every single post"
26 "Any topic can easily be turned into something totally unrelated"
27 "Always question a person's sexual prefrences without any real reason"
28 "Always question a person's gender - just incase it's really a man"
29 "In the internet all girls are men and all kids are undercover FBI agents"
30 "There are no girls on the internet"
31 "TITS or GTFO - the choice is yours"
32 "You must have pictures to prove your statements"
33 "Lurk more - it's never enough"
34 "There is porn of it, no exceptions"
35 "If no porn is found at the moment, it will be made"
36 "There will always be even more fucked up shit than what you just saw"
37 "You can not divide by zero (just because the calculator says so)"
38 "No real limits of any kind apply here - not even the sky"
39 "CAPSLOCK IS CRUISE CONTROL FOR COOL"
40 "EVEN WITH CRUISE CONTROL YOU STILL HAVE TO STEER"
41 "Desu isn't funny. Seriously guys. It's worse than Chuck Norris jokes."
42 "Nothing is Sacred."
43 "The more beautiful and pure a thing is - the more satisfying it is to corrupt it"
44 "Even one positive comment about Japanese things can make you a weaboo"
45 "When one sees a lion, one must get into the car."
46 "There is always furry porn of it."
47 "The pool is always closed."

View File

@ -0,0 +1,3 @@
Stroke on My Cock - Matt Rogers - https://www.youtube.com/watch?v=hcEN5C-OMDo
I Saw Mommy Fucking Santa Claus - Matt Rogers - https://www.youtube.com/watch?v=yurGJOnEte4
Hey Santa Claus - Kevin Bloody Wilson - https://www.youtube.com/watch?v=af7LwnA913g

View File

@ -0,0 +1,6 @@
Friday - Rebecca Black
Last Friday Night TGIF - Katy Perry
Friday I'm in Love - The Cure
Hello Friday - Flo Rida
Party Rock Anthem - LMFAO https://youtu.be/KQ6zr6kCPj8
Shots - LMFAO

View File

@ -0,0 +1,26 @@
Party all the Time - Eddie Murphy
Party Hard - Andrew W K
Party all the Time - Eddie Murphy
Party Rock Anthem - LMFAO
Party all the Time - Eddie Murphy
Party Rock Anthem - LMFAO
Party all the Time - Eddie Murphy
Party all the Time - Eddie Murphy
Party Rock Anthem - LMFAO
Sorry For Party Rocking - LMFAO
Don't Stop the Party - PitBull
Party In The USA - Miley Cyrus
Party all the Time - Eddie Murphy
You gotta Fight For Your Right to Party - Beastie Boys
Party all the Time - Eddie Murphy
You gotta Fight For Your Right to Party - Beastie Boys
Party all the Time - Eddie Murphy
You gotta Fight For Your Right to Party - Beastie Boys
Party all the Time - Eddie Murphy
Get The Party Started - P!nk
Party Monster - The Weeknd
Party Up - DMX
Party Train - The Gap Band
Don't Stop the Party - The Black Eyes Peas
Party - Beyonce
You gotta Fight For Your Right to Party - Beastie Boys

View File

@ -0,0 +1,66 @@
Look, If you had One shot, Or one opportunity, To seize everything you ever wanted, In one moment, Would you capture Or just let it slip?
His palms are sweaty, knees weak, arms are heavy
There's vomit on his sweater already, mom's spaghetti
He's nervous, but on the surface he looks calm and ready
To drop bombs, but he keeps on forgettin'
What he wrote down, the whole crowd goes so loud
He opens his mouth, but the words won't come out
He's chokin', how, everybody's jokin' now
The clocks run out, times up, over, blaow!
Snap back to reality, oh there goes gravity
Oh, there goes Rabbit, he choked
He's so mad, but he won't give up that easy? No
He won't have it, he knows his whole back city's ropes
It don't matter, he's dope, he knows that, but he's broke
He's so stacked that he knows, when he goes back to his mobile home, that's when its
Back to the lab again yo, this whole rhapsody
He better go capture this moment and hope it don't pass him
You better lose yourself in the music, the moment
You own it, you better never let it go
You only get one shot, do not miss your chance to blow
This opportunity comes once in a lifetime you better
The souls escaping, through this hole that its gaping
This world is mine for the taking
Make me king, as we move toward a, new world order
A normal life is borin', but super stardom's close to post mortem
It only grows harder, only grows hotter
He blows us all over these hoes is all on him
Coast to coast shows, he's known as the globetrotter
Lonely roads, God only knows, he's grown farther from home, he's no father
He goes home and barely knows his own daughter
But hold your nose 'cause here goes the cold water
His hoes don't want him no mo, he's cold product
They moved on to the next schmo who flows, he nose dove and sold nada
So the soap opera is told and unfolds, I suppose it's old partna, but the beat goes on
Da da dumb da dumb da da
You better lose yourself in the music, the moment
You own it, you better never let it go
You only get one shot, do not miss your chance to blow
This opportunity comes once in a lifetime you better
No more games, I'm a change what you call rage
Tear this motherfuckin' roof off like two dogs caged
I was playin' in the beginnin', the mood all changed
I been chewed up and spit out and booed off stage
But I kept rhymin' and stepwritin' the next cipher
Best believe somebody's payin' the pied piper
All the pain inside amplified by the
Fact that I can't get by with my nine to
Five and I can't provide the right type of
Life for my family 'cause man, these God damn food stamps don't buy diapers
And its no movie, there's no Mekhi Phifer
This is my life and these times are so hard
And it's getting even harder tryin' to feed and water my seed, plus
See dishonor caught up between bein' a father and a prima-donna
Baby mama drama screamin' on and too much
For me to want to say in one spot, another jam or not
Has gotten me to the point, I'm like a snail I've got
To formulate a plot fore I end up in jail or shot
Success is my only motherfuckin' option, failures not
Mom, I love you, but this trail has got to go, I cannot grow old in Salem's lot
So here I go is my shot
Feet fail me not 'cause maybe the only opportunity that I got
You better lose yourself in the music, the moment
You own it, you better never let it go
You only get one shot, do not miss your chance to blow
This opportunity comes once in a lifetime you better
You can do anything you set your mind to, man

View File

@ -0,0 +1,97 @@
Dance like nobody is watching, code like everybody is.
A deployed MVP is worth two prototyped.
When you reach wizened engineer-level, there are at least a hundred wizened engineers above you.
A/B Test twice, deploy changes once.
Don't commit on master when drunk.
Sleep on a force push.
A git pull a day, keeps the doctor away.
Sometimes you have to cut legacy support to allow the new product to bloom.
More hours worked, more commits made. Mostly reverts and bug-causing features.
Even a wizened engineer will drop production DB.
Scope creep makes a mountain.
A hundred programmers won't make a two-year project in a week.
Facebook wasn't built in a day.
"Just ship" is no substitute for design.
Today's fashion is tomorrow's legacy.
Learning obscure and strange languages, yields better understanding and broader horizons.
The better job you do, the easier others discount the level of difficulty.
Testing is easier than debugging.
Finish a product in a day, and people will expect a new product every day. Teach people about proper development cycles, and your company will flourish.
Customers are the best testers.
Absence is beauty, in error logs.
Eternal sunshine of the stateless mind.
Laziness is your best friend. Never do twice what you can automate once.
Good test coverage + automated workflows = quiet cell phones and better sleep.
The best code is no code at all.
The best request is the one you don't make.
If a system works perfectly, no one will care what is inside it. Once it breaks, systems design and architecture decides your fate.
Leave architecture for applications that require long-term support.
Architecture and design are preparations for problems and changes, not a key to runtime.
Without a prototype, don't build a final product.
Without boilerplate, there's no speedy development.
Code frustration is a bad advisor for a refactor.
The more technology you learn, the more you realize how little you know.
An early BETA launch will teach you more than a delayed promise.
All applications are pretty when your screen is off.
Do not pick a framework for its demo page, instead pick it for its code.
You cannot set a web standard alone.
A poor programmer blames the language.
The code's writin' but ain't nobody programming.
Mañana often has the most tickets.
Never optimize before measuring
Think about your dance moves when drunk, next time you try to code with some beers on your count.
What happens in Git stays in Git
Simpler code has less bugs.
Lock up your dependency versions and other valuables.
Quantity of attempts often yields quality at the end. Commitment to refactoring legacy code yields better quality yet.
Accept that some days you're the QA and some days you're the one fixing bugs.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
Debugging becomes significantly easier if you first admit that you are the problem.
Figure out your data structures, and the code will follow.
One thing should never do more than one thing.
Success from a final version is a lie, there is only iteration. Through iteration, we gain better products. Through better products, we gain traction. Through traction, we gain success. Through success, misguided tech specs are broken. The development cycle shall free us.
An open source developer does not act for personal fame.
Public code review forces one to better oneself. It forces better practices, smarter solutions, growth as a developer... or being broken.
Testing covers not testing.
The most attractive pull requests are the ones wearing a lot of red.
Coding styleguides without peer code reviews are like running a country on voluntary taxes
Deploying an unmonitored app is like going on a roadtrip without a gas gauge.
Learn a programming language, become a new developer.
Some old code never refactors, and breaks at the slightest change.
A developer will spot a peer from far away
A developer that codes until burnout, lives without a mind.
A marketer is not a QA, a developer does not advertise.
A soft spoken developer will see his warnings of technical debt unheeded, and will suffer the blame.
A well spoken developer can be hired hastily but at the last minute fail an easy test.
One can self-learn the art of code but do not assume other crafts suffer of such low bar of entry.
Find ease in your code: Code difficult to read and understand is code destined to be in troubled legacy.
Collaborating on open source projects can bring about friendship and community just as it can create factions and flame wars.
Refactor or rewrite, there is no patching unmaintainable legacy code
If you stop learning now and take the easy path, you will find yourself stuck in legacy software forever.
A beautiful product which is pleasing to non-paying users is good only for frightening investors when it runs out of funding.
A foreach loop avoided is a CPU cycle earned.
You cannot prevent managers from asking too much of you, but you can prevent them from getting used to it.
Your code might be perfect but you aren't
Any sufficiently complex app architecture is indistinguishable from spaghetti code.
Writing requirements based code and walking on water are both relatively easy to do when frozen.
It takes twice as much intelligence to debug than to program, therefore you peer review because you can never truly be smart enough to debug your own code.
Hofstadter's Law will tell you to always add more time than you think you need to a project because it will take longer, even when you take into account Hofstadter's Law.
Long lasting code is written only when you pretend that it will be peer reviewed or maintained by a violent psycopath who knows where you live.
Small bug becomes a huge problem.
Commiting is the only command I know, Commiting on you.
No one who codes before dawn 360 days a year fails to make his startup profitable
There is no test without first a failure
A line of testing is worth more than a module of code
Don't put all your logic in one method basket
As you code so shall you also deploy
Diff before you Push
When the only tool you have is Rails, everything looks like Ruby
Careful that Ignoring a PR doesn't get construed as Approval
An interview at the right price is worth two at Google
With commit and deploy access comes great responsibility
When aruging with a foolish and conceded programmer, first make sure that the other person isn't doing the exact same thing
Don't enter an architecture argument without knowing design patterns first
Anger and stubborness make bad allies in code review
Not all those that prototype and test ideas are lost.
Each new commit holds new chances, new beginnings
Commit or do not commit, there is no try