Home Projects Redmine Issues

#divbot.net gitweb

Initial commit master
author#divbot.net <divbot.net+source@gmail.com>
Sun, 21 May 2017 03:35:09 +0000 (23:35 -0400)
committer#divbot.net <divbot.net+source@gmail.com>
Sun, 21 May 2017 03:35:09 +0000 (23:35 -0400)
chat.py [new file with mode: 0755]
db.py [new file with mode: 0755]
div.py [new file with mode: 0755]
my_divbot.py [new file with mode: 0755]

diff --git a/chat.py b/chat.py
new file mode 100755 (executable)
index 0000000..b170359
--- /dev/null
+++ b/chat.py
@@ -0,0 +1,67 @@
+# load modules
+import re, socket
+
+# internet relay chat bot
+class bot(object):
+
+  def __init__(self, encoding):
+    self.network = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    self.encoding = encoding
+
+  def message(self, target, content):
+    self.send('PRIVMSG {} :{}'.format(target, content))
+
+  def send(self, content):
+    self.network.send(bytes('{}\r\n'.format(content), self.encoding))
+    print('send: ' + content)
+
+  def receive(self):
+    content = self.network.recv(1024).decode(self.encoding)
+    target = str.split(content, '\n')
+    for line in target:
+      try:
+        line = str.rstrip(line)
+        line = str.split(line)
+        if (line[0] == 'PING'):
+          self.send('PONG {}'.format(line[1]))
+      except:
+        pass
+    print('recv: ' + str.rstrip(content))
+    return content
+
+  def translate(self, content):
+    # irc translation using regex
+    irc = re.compile(r'(:(?P<nick>[^ !@]+)(\!(?P<user>[^ @]+'
+                      '))?(\@(?P<host>[^ ]+))? )?(?P<command>[^ ]+'
+                      ') (?P<params1>([^:]*))(?P<params2>(:.*)?)')
+    # str -> msg
+    if isinstance(content, str):
+      content = irc.match(content.strip())
+      if not content:
+        return None
+      content = content.groupdict()
+      content['params'] = content.pop('params1').split()
+      if content['params2']:
+        content['params'] += [content['params2'][1:]]
+      content.pop('params2')
+      return content
+    # msg -> str
+    else:
+      def gen():
+        if content.get('nick', None):
+          yield ':' + content['nick']
+          if content.get('user', None):
+            yield '!' + content['user']
+          if content.get('host', None):
+            yield '@' + content['host']
+          yield ' '
+        yield content['command']
+        if content.get('params', None):
+          for param in content['params'][:-1]:
+            yield ' ' + param
+          yield ' '
+          if ' ' in content['params'][-1]:
+            yield ':'
+          yield content['params'][-1]
+        yield ''
+      return ''.join(gen())
diff --git a/db.py b/db.py
new file mode 100755 (executable)
index 0000000..a94a48c
--- /dev/null
+++ b/db.py
@@ -0,0 +1,1408 @@
+# ordinary playing cards
+ordinary = [
+  "Ace of Hearts",
+  "2 of Hearts",
+  "3 of Hearts",
+  "4 of Hearts",
+  "5 of Hearts",
+  "6 of Hearts",
+  "7 of Hearts",
+  "8 of Hearts",
+  "9 of Hearts",
+  "10 of Hearts",
+  "Jack of Hearts",
+  "Queen of Hearts",
+  "King of Hearts",
+  "Ace of Clubs",
+  "2 of Clubs",
+  "3 of Clubs",
+  "4 of Clubs",
+  "5 of Clubs",
+  "6 of Clubs",
+  "7 of Clubs",
+  "8 of Clubs",
+  "9 of Clubs",
+  "10 of Clubs",
+  "Jack of Clubs",
+  "Queen of Clubs",
+  "King of Clubs",
+  "Ace of Diamonds",
+  "2 of Diamonds",
+  "3 of Diamonds",
+  "4 of Diamonds",
+  "5 of Diamonds",
+  "6 of Diamonds",
+  "7 of Diamonds",
+  "8 of Diamonds",
+  "9 of Diamonds",
+  "10 of Diamonds",
+  "Jack of Diamonds",
+  "Queen of Diamonds",
+  "King of Diamonds",
+  "Ace of Spades",
+  "2 of Spades",
+  "3 of Spades",
+  "4 of Spades",
+  "5 of Spades",
+  "6 of Spades",
+  "7 of Spades",
+  "8 of Spades",
+  "9 of Spades",
+  "10 of Spades",
+  "Jack of Spades",
+  "Queen of Spades",
+  "King of Spades"
+]
+
+# arcana arcanorum
+arcana_arcanorum = [
+  "ACE OF SPADES - POWER - The energy that is within us all; the essential force of being. It cannot be denied.",
+  "TWO OF SPADES - GAIN - Physical and mental betterment; one's work is succeeding.",
+  "THREE OF SPADES - HEALTH - Stability; disappearance of illness or decay.",
+  "FOUR OF SPADES - FREEDOM - Lifting of oppression; the inner power of the individual stands unchained.",
+  "FIVE OF SPADES - COMPETITION - Healthy conflict, bringing about the better of all parties involved.",
+  "SIX OF SPADES - MEDIOCRITY - Lack of progress; mundanity.",
+  "SEVEN OF SPADES - HUMILIATION - Embarrassment; a waste of human effort.",
+  "EIGHT OF SPADES - LOSS - The loss of something physical or mental.",
+  "NINE OF SPADES - ARROGANCE - Taking one's position too seriously; overconfidence.",
+  "TEN OF SPADES - DEFEAT - Destruction of one's accomplishments or attempts; physical or mental reduction.",
+  "JACK OF SPADES - CHANGE - The essential force in all things. Change can be for the better or for the worse; only the individual can decide which he or she wants.",
+  "QUEEN OF SPADES - VULNERABILITY - Opening up oneself to injury or to downfall.",
+  "KING OF SPADES - VICTORY - Triumph; physical or mental release.",
+  "ACE OF DIAMONDS - MATERIALITY - The physical; the temptations.",
+  "TWO OF DIAMONDS - LOYALTY - Staying besides oneself or one's responsibilities.",
+  "THREE OF DIAMONDS - HONESTY - Being true to oneself and those around one.",
+  "FOUR OF DIAMONDS - CHARITY - Giving to the needy, not necessarily in physical considerations.",
+  "FIVE OF DIAMONDS - CONFUSION - Material unrest; one is unsure of oneself.",
+  "SIX OF DIAMONDS - ANXIETY - Further material unrest; one is starting to lose control of that which is in and around one.",
+  "SEVEN OF DIAMONDS - FUTILITY - Work for nothing.",
+  "EIGHT OF DIAMONDS - FEAR - That which will end us all if not put into its proper place.",
+  "NINE OF DIAMONDS - BIAS - Unneeded prejudice; blindness.",
+  "TEN OF DIAMONDS - FRAUD - Lies, deceit, sin.",
+  "JACK OF DIAMONDS - PATIENCE - One of the greater things in life; one must learn to wait for what is coming to one. All things happen, given the right place and the right opportunity.",
+  "QUEEN OF DIAMONDS - VANITY - Pettiness; personal materiality taken to the negative extreme.",
+  "KING OF DIAMONDS - CONTENTMENT - Happiness and solemnness with one's position in the world.",
+  "ACE OF CLUBS - SPIRITUALITY - That which is without, and yet within. All of us have the energy inside of ourselves, if we wish to let it out.",
+  "TWO OF CLUBS (or THE CIRCLE) - SIMPLICITY - The perfection of spirituality. The oneness and beauty of the circle; the solidarity and singularity of a point. Nothing is better.",
+  "THREE OF CLUBS - COMPREHENSION - Understanding, cognition, positive thought energy.",
+  "FOUR OF CLUBS - RESPONSIBILITY - Taking care of one's commitments.",
+  "FIVE OF CLUBS - REFLECTION - Looking at one's own accomplishments and failures and feelings. The importance of this is not known to the nonspiritual.",
+  "SIX OF CLUBS - INNOCENCE - Naivete; failure to attempt to understand the world around one.",
+  "SEVEN OF CLUBS - DISAPPOINTMENT - Disappointment in oneself; unwarranted unhappiness in the world around one.",
+  "EIGHT OF CLUBS - INSTABILITY - Internal strife; the foundations within are crumbling.",
+  "NINE OF CLUBS - STAGNATION - Fermentation; worthlessness.",
+  "TEN OF CLUBS - IMMATURITY - Failing to understand one's place in the world; taking for granted.",
+  "JACK OF CLUBS - SHAME - Shame is dangerous. One need not be ashamed of oneself; there are many other things in this Universe that demand attention, and warrant more.",
+  "QUEEN OF CLUBS - EQUILIBRIUM - The essential balance of the Universe. All was once in Equilibrium; one day, all will return.",
+  "KING OF CLUBS - FORESIGHT - The ability to predict what is coming; an important attribute in any person.",
+  "ACE OF HEARTS - LOVE - That communion between two souls, with a beauty that can never be forgotten or ignored.",
+  "TWO OF HEARTS (or THE LOVERS) - INVOLVEMENT - The meeting and joining of two souls.",
+  "THREE OF HEARTS - OPPORTUNITY - The chance for betterment that one should never miss or overlook.",
+  "FOUR OF HEARTS - INSPIRATION - That spark of genius that arises when one is touched by love.",
+  "FIVE OF HEARTS - APATHY - Disinterest. One of the more dangerous of the evils.",
+  "SIX OF HEARTS - REGRET - Disappointment in oneself or one's actions from a previous time. What is past is past. What is future is another thing.",
+  "SEVEN OF HEARTS - FANTASY - Dangerous self-involvement. It is healthy to wonder and wander among oneself - but it is dangerous to take this too far.",
+  "EIGHT OF HEARTS - OBSESSION - Love taken for itself; love for another in spite of the other. Love is the sharing of two souls, not the stealing of one.",
+  "NINE OF HEARTS - HATRED - Antipathy, often caused of failed or failing love.",
+  "TEN OF HEARTS - ISOLATION - Loneliness; desperation; unending sadness.",
+  "JACK OF HEARTS - JEALOUSY - Obsession turned around; the stealing of a soul that is not one's to steal.",
+  "QUEEN OF HEARTS - COMPASSION - Oh, the beauty of love!",
+  "KING OF HEARTS (or THE SUICIDE KING) - SELF-DESTRUCTION - The taking of oneself, literally or figuratively, for selfish and worthless causes.",
+  "FIRST TRUMP (RED JOKER) - LIFE - Evolution, beauty, and harmony. Infinity.",
+  "SECOND TRUMP (BLACK JOKER) - DEATH - Stagnation, ugliness, and chaos. Zero."
+]
+
+# morgan's tarot
+morgan = [
+  "TRANSMUTATION THROUGH UNION OF OPPOSITES { http://www.sleepbot.com/morgan/card/morgans.html }",
+  "YOUR MISSION IS NOT YET COMPLETE { http://www.sleepbot.com/morgan/card/mission.html }",
+  "THERE ARE NO MISTEAKS { http://www.sleepbot.com/morgan/card/misteaks.html }",
+  "PASSION { http://www.sleepbot.com/morgan/card/passion.html }",
+  "IT IS NOT WHAT YOU DO THAT COUNTS, IT IS WHERE YOUR HEAD IS AT { http://www.sleepbot.com/morgan/card/headisat.html }",
+  "GO AHEAD ON { http://www.sleepbot.com/morgan/card/on.html }",
+  "DO IT NOW { http://www.sleepbot.com/morgan/card/doitnow.html }",
+  "I THINK I'LL MAKE A BUDDHA { http://www.sleepbot.com/morgan/card/buddha.html }",
+  "KEEP UP THE GOOD WORK { http://www.sleepbot.com/morgan/card/goodwork.html }",
+  "WHO AM I? { http://www.sleepbot.com/morgan/card/whoami.html }",
+  "WHATEVER'S RIGHT { http://www.sleepbot.com/morgan/card/right.html }",
+  "DO NOT MEDDLE IN THE AFFAIRS OF WIZARDS FOR THEY ARE SUBTLE & QUICK TO ANGER { http://www.sleepbot.com/morgan/card/wizards.html }",
+  "THINK ABOUT IT FOR A WHILE { http://www.sleepbot.com/morgan/card/think.html }",
+  "I STILL DON'T UNDERSTAND { http://www.sleepbot.com/morgan/card/undrstnd.html }",
+  "DON'T WORRY, YOU CAN DO NO WRONG { http://www.sleepbot.com/morgan/card/nowrong.html }",
+  "SOMEONE IS LAUGHING AT YOU { http://www.sleepbot.com/morgan/card/laughing.html }",
+  "THE ONE MIND IS ROOTLESS AND FOUNDATIONLESS { http://www.sleepbot.com/morgan/card/mind.html }",
+  "DEATH/REBIRTH { http://www.sleepbot.com/morgan/card/rebirth.html }",
+  "HEAVY { http://www.sleepbot.com/morgan/card/heavy.html }",
+  "FREAK { http://www.sleepbot.com/morgan/card/freak.html }",
+  "BE CAREFUL GOING AROUND CURVES { http://www.sleepbot.com/morgan/card/curves.html }",
+  "SOMEWHERE, THERE IS AN ENERGY LEAK { http://www.sleepbot.com/morgan/card/energy.html }",
+  "BALL { http://www.sleepbot.com/morgan/card/ball.html }",
+  "THE VIRGIN SUN QUEEN { http://www.sleepbot.com/morgan/card/sunqueen.html }",
+  "NO TRIPS WITHOUT A TRIPPER { http://www.sleepbot.com/morgan/card/tripper.html }",
+  "TRIP { http://www.sleepbot.com/morgan/card/trip.html }",
+  "THE PATH { http://www.sleepbot.com/morgan/card/path.html }",
+  "THE BLANK CARD { http://www.sleepbot.com/morgan/card/blank.html }",
+  "WHAT ARE YOU FEELING NOW? { http://www.sleepbot.com/morgan/card/feeling.html }",
+  "DRINK GOLD { http://www.sleepbot.com/morgan/card/gold.html }",
+  "WHAT'S HAPPENING? { http://www.sleepbot.com/morgan/card/happenng.html }",
+  "GRASS { http://www.sleepbot.com/morgan/card/grass.html }",
+  "AND THERE I WAS ... SURROUNDED { http://www.sleepbot.com/morgan/card/surround.html }",
+  "THERE IS NOTHING YOU CAN DO { http://www.sleepbot.com/morgan/card/youcando.html }",
+  "AWAKE! { http://www.sleepbot.com/morgan/card/awake.html }",
+  "WHO IS WATCHING THE COSMIC DRAMA? { http://www.sleepbot.com/morgan/card/drama.html }",
+  "YOU ARE EXPERIENCING AN ILLEGITIMATE FEELING { http://www.sleepbot.com/morgan/card/illegit.html }",
+  "MUSHROOM { http://www.sleepbot.com/morgan/card/mushroom.html }",
+  "DOWN HOME FUNK { http://www.sleepbot.com/morgan/card/funk.html }",
+  "NOBODY HERE BUT US FOLK { http://www.sleepbot.com/morgan/card/usfolk.html }",
+  "SLIMY GLOB REIGNS { http://www.sleepbot.com/morgan/card/glob.html }",
+  "YESTERDAY'S TRUTH OR WHAT WAS IT I WAS DOING A MINUTE AGO { http://www.sleepbot.com/morgan/card/yestruth.html }",
+  "YOUR DOUBT IS YOUR FAITH IF NECESSARY IN YOUR PARTICULAR CASE PERHAPS { http://www.sleepbot.com/morgan/card/doubt.html }",
+  "THIS MAY NOT BE A PERFECT CIRCLE BUT IT IS A PERFECT ... WHATEVER IT IS { http://www.sleepbot.com/morgan/card/perfect.html }",
+  "BOO!!! { http://www.sleepbot.com/morgan/card/boo.html }",
+  "DRUG DRAGGED { http://www.sleepbot.com/morgan/card/dragged.html }",
+  "POWER { http://www.sleepbot.com/morgan/card/power.html }",
+  "YOU ARE A PAWN { http://www.sleepbot.com/morgan/card/pawn.html }",
+  "AS ABOVE, SO BELOW { http://www.sleepbot.com/morgan/card/asabove.html }",
+  "MAYA - THE FIELD OF THE LORD { http://www.sleepbot.com/morgan/card/maya.html }",
+  "THE DREAM { http://www.sleepbot.com/morgan/card/dream.html }",
+  "YOU ARE OUR GOD { http://www.sleepbot.com/morgan/card/ourgod.html }",
+  "DU WACKY DU { http://www.sleepbot.com/morgan/card/duwacky.html }",
+  "HAND { http://www.sleepbot.com/morgan/card/hand.html }",
+  "IT'S A DOG EAT DOG FOOD WORLD { http://www.sleepbot.com/morgan/card/dogfood.html }",
+  "IGNORE THE PRECEDING { http://www.sleepbot.com/morgan/card/ignore.html }",
+  "FAR OUT { http://www.sleepbot.com/morgan/card/farout.html }",
+  "ETERNAL BLISS { http://www.sleepbot.com/morgan/card/bliss.html }",
+  "STOP { http://www.sleepbot.com/morgan/card/stop.html }",
+  "THE UNIVERSE IS NOT UNFOLDING THE WAY IT SHOULD { http://www.sleepbot.com/morgan/card/unfold.html }",
+  "DOOR TO THE AKASHIC RECORDS { http://www.sleepbot.com/morgan/card/akashic.html }",
+  "THERE IS NO YOU { http://www.sleepbot.com/morgan/card/noyou.html }",
+  "FROM HERE ON IT'S NOTHING BUT A DOWNHILL RUN { http://www.sleepbot.com/morgan/card/downhill.html }",
+  "AWAIT FURTHER ORDERS { http://www.sleepbot.com/morgan/card/await.html }",
+  "THE WHIRLING GOLDEN WHEEL { http://www.sleepbot.com/morgan/card/wheel.html }",
+  "SPEED { http://www.sleepbot.com/morgan/card/speed.html }",
+  "IF THERE IS A JUDGE YOU ARE IT { http://www.sleepbot.com/morgan/card/judge.html }",
+  "THERE ARE NO OTHERS { http://www.sleepbot.com/morgan/card/noothers.html }",
+  "IN SIGNIFICANT CHANGE { http://www.sleepbot.com/morgan/card/change.html }",
+  "WAIT { http://www.sleepbot.com/morgan/card/wait.html }",
+  "THE ROBOT { http://www.sleepbot.com/morgan/card/robot.html }",
+  "FORGET IT { http://www.sleepbot.com/morgan/card/forgetit.html }",
+  "THE WAR HAS REACHED A CRITICAL POINT ... BETWEEN ATLANTIS AND MU { http://www.sleepbot.com/morgan/card/critical.html }",
+  "I COME FROM A DIFFERENT PLANET { http://www.sleepbot.com/morgan/card/planet.html }",
+  "TOMATO, POTATO, EGGPLANT { http://www.sleepbot.com/morgan/card/eggplant.html }",
+  "BABA { http://www.sleepbot.com/morgan/card/baba.html }",
+  "\"O\" - THE (W)HOLE CARD { http://www.sleepbot.com/morgan/card/circle.html }",
+  "THIS IS CENTRAL HEADQUARTERS { http://www.sleepbot.com/morgan/card/central.html }",
+  "THE VALLEY { http://www.sleepbot.com/morgan/card/valley.html }",
+  "DOES CONSCIOUSNESS RING A BELL? { http://www.sleepbot.com/morgan/card/ringbell.html }",
+  "MESSAGES MONDAY { http://www.sleepbot.com/morgan/card/monday.html }",
+  "LET GEORGE DO IT { http://www.sleepbot.com/morgan/card/george.html }",
+  "LOVE { http://www.sleepbot.com/morgan/card/love.html }",
+  "PIGS AND FISHES SURROUND YOU { http://www.sleepbot.com/morgan/card/pigfish.html }",
+  "TEE HEE HA HA { http://www.sleepbot.com/morgan/card/teehee.html }",
+  "TRY TO RELAX { http://www.sleepbot.com/morgan/card/relax.html }",
+  "ALWAYS REMEMBER THIS { http://www.sleepbot.com/morgan/card/remember.html }",
+  "WORDLESS { http://www.sleepbot.com/morgan/card/wordless.html }"
+]
+
+# [petit] lenormand
+lenormand = [
+  "1 - Rider { http://learnlenormand.com/wp-content/uploads/2012/06/Rider-Lenormand-e1362080805819.jpg }",
+  "2 - Clover { http://learnlenormand.com/wp-content/uploads/2012/06/lenormand-clover-e1362080968987.jpg }",
+  "3 - Ship { http://learnlenormand.com/wp-content/uploads/2012/06/lenormand-ship-e1362080948546.jpg }",
+  "4 - House { http://learnlenormand.com/wp-content/uploads/2012/07/House-Lenormand-e1362080925730.jpg }",
+  "5 - Tree { http://learnlenormand.com/wp-content/uploads/2012/07/tree-lenormand-e1362081014539.jpg }",
+  "6 - Clouds { http://learnlenormand.com/wp-content/uploads/2012/07/CloudsLenormand-e1362081157433.jpg }",
+  "7 - Snake { http://learnlenormand.com/wp-content/uploads/2012/07/Snake-Lenormand-e1362081137279.jpg }",
+  "8 - Coffin { http://learnlenormand.com/wp-content/uploads/2012/07/Snake-Lenormand-e1362081137279.jpg }",
+  "9 - Bouquet { http://learnlenormand.com/wp-content/uploads/2012/08/Lenormand-Bouquet-e1362080586375.jpg }",
+  "10 - Scythe { http://learnlenormand.com/wp-content/uploads/2012/08/lenormand-scythe-e1362080572683.jpg }",
+  "11 - Whip { http://learnlenormand.com/wp-content/uploads/2012/08/Lenormand-Whip-e1362080546785.jpg }",
+  "12 - Birds { http://learnlenormand.com/wp-content/uploads/2012/09/lenormand-birds-e1362080524463.jpg }",
+  "13 - Child { http://learnlenormand.com/wp-content/uploads/2012/09/Child-Lenormand-e1362080506553.jpg }",
+  "14 - Fox { http://learnlenormand.com/wp-content/uploads/2012/10/fox-lenormand-e1362080466621.jpg }",
+  "15 - Bear { http://learnlenormand.com/wp-content/uploads/2012/10/Lenromand-Bear-e1362080445389.jpg }",
+  "16 - Stars { http://learnlenormand.com/wp-content/uploads/2012/10/Stars-Lenormand-e1362080424548.jpg }",
+  "17 - Stork { http://learnlenormand.com/wp-content/uploads/2012/10/lenormand-stork-e1362080400415.jpg }",
+  "18 - Dog { http://learnlenormand.com/wp-content/uploads/2012/11/dog-lenormand-e1362080376794.jpg }",
+  "19 - Tower { http://learnlenormand.com/wp-content/uploads/2012/11/Lenormand-Tower-e1362080355625.jpg }",
+  "20 - Garden { http://learnlenormand.com/wp-content/uploads/2012/11/lenormand-garden-e1362080324826.jpg }",
+  "21 - Mountain { http://learnlenormand.com/wp-content/uploads/2012/11/Lenormand-Mountain-e1362080294351.jpg }",
+  "22 - Crossroad { http://learnlenormand.com/wp-content/uploads/2012/12/crossroad-lenormand-e1362080270820.jpg }",
+  "23 - Mice { http://learnlenormand.com/wp-content/uploads/2012/12/Mice-Lenormand-e1362080253168.jpg }",
+  "24 - Heart { http://learnlenormand.com/wp-content/uploads/2012/06/Heart-Lenormand-e1362081039423.jpg }",
+  "25 - Ring { http://learnlenormand.com/wp-content/uploads/2012/12/Lenormand-Ring-e1362080230376.jpg }",
+  "26 - Book { http://learnlenormand.com/wp-content/uploads/2012/12/Lenormand-Book-e1362080208866.jpg }",
+  "27 - Letter { http://learnlenormand.com/wp-content/uploads/2013/01/lenormand-letter-e1362080188630.jpg }",
+  "28 - Man { http://learnlenormand.com/wp-content/uploads/2013/01/lenormand-man-e1362079883749.jpg }",
+  "29 - Woman { http://learnlenormand.com/wp-content/uploads/2013/01/lenormand-woman-e1362079829525.jpg }",
+  "30 - Lily { http://learnlenormand.com/wp-content/uploads/2013/01/lenormand-lily-e1362079905892.jpg }",
+  "31 - Sun { http://learnlenormand.com/wp-content/uploads/2013/01/lenormand-sun-e1362079083748.jpg }",
+  "32 - Moon { http://learnlenormand.com/wp-content/uploads/2013/01/lenormand-moon-e1362079858185.jpg }",
+  "33 - Key { http://learnlenormand.com/wp-content/uploads/2013/01/lenormand-key-e1362079929811.jpg }",
+  "34 - Fish { http://learnlenormand.com/wp-content/uploads/2013/01/lenormand-fish-e1362078894440.jpg }",
+  "35 - Anchor { http://learnlenormand.com/wp-content/uploads/2013/01/lenormand-anchor-e1362080096498.jpg }",
+  "36 - Cross { http://learnlenormand.com/wp-content/uploads/2013/01/lenormand-cross-e1362080077721.jpg }"
+]
+
+# [petit] yeenormand
+yee = [
+  "22 - Crossroad { https://www.youtube.com/watch?v=7eAjzA_XUds }",
+  "1 - Rider { https://www.youtube.com/watch?v=q6EoRBvdVPQ }",
+  "28 - Man { https://www.youtube.com/watch?v=at4VxMl53vQ }",
+  "10 - Scythe { https://www.youtube.com/watch?v=8iQl9iiscXQ }",
+  "5 - Tree { https://www.youtube.com/watch?v=v3i8vsIUA7Q }",
+  "25 - Ring { https://www.youtube.com/watch?v=cpwaP8lsJ0s }",
+  "8 - Coffin { https://www.youtube.com/watch?v=057ra2g75tg }",
+  "15 - Bear { https://www.youtube.com/watch?v=Gy-fxHtGQ_4 }",
+  "13 - Child { https://www.youtube.com/watch?v=beHr-dAnObM }",
+  "6 - Clouds { https://www.youtube.com/watch?v=-YBRHq1QTtc }",
+  "21 - Mountain { https://www.youtube.com/watch?v=wJzw8e23ORs }",
+  "17 - Stork { https://www.youtube.com/watch?v=_Q3RIOhFdKI }",
+  "26 - Book { https://www.youtube.com/watch?v=uGWUjmlPm9I }",
+  "18 - Dog { https://www.youtube.com/watch?v=724_pBLvO04 }",
+  "20 - Garden { https://www.youtube.com/watch?v=xANgJ4yGK8o }",
+  "3 - Ship { https://www.youtube.com/watch?v=CG5bou0LSes }",
+  "9 - Bouquet { https://www.youtube.com/watch?v=PAJWo8eYQCc }",
+  "16 - Stars { https://www.youtube.com/watch?v=hTSCAeWOW4c }",
+  "12 - Birds { https://www.youtube.com/watch?v=i5vuo7s6amE }",
+  "19 - Tower { https://www.youtube.com/watch?v=_OMn5DA6FU8 }",
+  "23 - Mice { https://www.youtube.com/watch?v=H6gI9oeWmmY }",
+  "24 - Heart { https://www.youtube.com/watch?v=FtS-TAVeUy0 }",
+  "30 - Lily { https://www.youtube.com/watch?v=A-6i8G6cLWI }",
+  "33 - Key { https://www.youtube.com/watch?v=QZDK0vlpy8I }",
+  "4 - House { https://www.youtube.com/watch?v=Ac4GEB3UV5E }",
+  "29 - Woman { https://www.youtube.com/watch?v=Kyy4DwhyqcE }",
+  "32 - Moon { https://www.youtube.com/watch?v=ZLCG9cssY0I }",
+  "34 - Fish { https://www.youtube.com/watch?v=4nwlNlUOIbU }",
+  "27 - Letter { https://www.youtube.com/watch?v=REMjedhsMHs }",
+  "36 - Cross { https://www.youtube.com/watch?v=YcebiZfQfdM }",
+  "7 - Snake { https://www.youtube.com/watch?v=hpIUBRPlC4U }",
+  "2 - Clover { https://www.youtube.com/watch?v=ktRtVg2ZtRQ }",
+  "35 - Anchor { https://www.youtube.com/watch?v=U_QCGnITd0k }",
+  "14 - Fox { https://www.youtube.com/watch?v=FpvzWyozmNw }",
+  "31 - Sun { https://www.youtube.com/watch?v=g58doApjG0c }",
+  "11 - Whip { https://www.youtube.com/watch?v=10rjqmRkzL4 }"
+]
+
+# coin
+coin = [
+  "Heads", "Tails"
+]
+
+# rock, paper, scissors
+rps = [
+  "Rock",
+  "Paper",
+  "Scissors"
+]
+
+# yes/no
+yes_no = [
+  "Yes.",
+  "Probably.",
+  "Maybe.",
+  "No."
+]
+
+# when
+when = [
+  "In a few days.",
+  "In a few weeks.",
+  "In a few months.",
+  "In a few years.",
+  "Never."
+]
+
+# terrestrial bodies
+bodies = [
+  "Sun",
+  "Moon",
+  "Mercury",
+  "Venus",
+  "Earth",
+  "Mars",
+  "Jupiter",
+  "Saturn"
+]
+
+# magic conch from sponegebob squarepants
+conch = [
+  "Maybe someday",
+  # "what" and "do" in query
+  "Nothing",
+  # query starts with "which"
+  "Neither",
+  "Follow the seahorse",
+  "I don't think so",
+  "No",
+  "Yes",
+  "Try asking again"
+]
+
+# pendulum
+pendulum = [
+  "Yes",
+  "Yes",
+  "Yes",
+  "Yes",
+  "No",
+  "No",
+  "No",
+  "No",
+  "Maybe",
+  "Maybe",
+  "Rephrase Question",
+  "No Answer"
+]
+
+# gems
+# album: https://imgur.com/a/mey77
+gems = [
+  "Selenite - your health, guardian angel { http://i.imgur.com/npckl5Y.jpg }",
+  "Moonstone - innocence or clear thinking { http://i.imgur.com/P3hcfyq.jpg }",
+  "Citrine - travel, communication and/or success { http://i.imgur.com/3ua7Vun.jpg }",
+  "Carnelian - personal power and growth { http://i.imgur.com/Zu4JaYV.jpg }",
+  "Garnet - anger, confrontations, change, passion and/or sexual energy { http://i.imgur.com/b1V1BSt.jpg }",
+  "Rose Quartz - love, friendship, relationships, joy and/or family { http://i.imgur.com/eL2SYOx.jpg }",
+  "Amethyst - magic, mysticism, spiritual and/or past lives { http://i.imgur.com/2EfZJDQ.jpg }",
+  "Blue Lace Agate - peace, understanding and/or patience { http://i.imgur.com/dVdhZk5.jpg }",
+  "Sodalite - protection, sleep, healing, fidelity, dreaming and/or intuition { http://i.imgur.com/N4Rvnl7.jpg }",
+  "Green Aventurine - money, prosperity, growth, personal goals and/or career { http://i.imgur.com/ymlJifO.jpg }",
+  "Smoky Quartz - stability, personal responsibility and/or inner resources { http://i.imgur.com/nD49Aoj.jpg }",
+  "Hematite - wisdom, knowledge and/or simplicity { http://i.imgur.com/2TuQCDw.jpg }",
+  "Apache Tear Obsidian - transformation, such as releasing negative energy { http://i.imgur.com/VyxvTSJ.jpg }"
+]
+
+# focus
+focus = [
+  "Art", "Awareness", "Balance", "Career", "Chores", "Cleaning", 
+  "Communication", "Confidence", "Contentment", "Compassion", "Craftsmanship", 
+  "Creativity", "Curiosity", "Details", "Diet", "Discipline", "Education", 
+  "Efficiency", "Exercise", "Exploring", "Fairness", "Family", "Finances", 
+  "Forgiveness", "Friendship", "Fun", "Generosity", "Giving", "Goals", 
+  "Habits", "Happiness", "Healing", "Health", "Humor", "Hygiene", "Image", 
+  "Improvement", "Kindness", "Learning", "Listening", "Love", "Meditation", 
+  "Money", "Music", "Mindfulness", "Nature", "Networking", "Nothing", 
+  "Nutrition", "Openness", "Others", "Patience", "Perspective", "Philosophy", 
+  "Planning", "Practice", "Preparing", "Productivity", "Proportion", "Reading", 
+  "Reflection", "Relaxing", "Relationships", "Repair", "Resolutions", 
+  "Responsibility", "Research", "Rest", "Romance", "Saving", "Self", "Sex", 
+  "Sharing", "Slacking", "Smiling", "Socializing", "Spirituality", 
+  "Thoughtfulness", "Thoroughness", "Understanding", "Wellness", "Wonder", 
+  "Work", "Worldliness", "Writing", "Yourself"
+]
+
+# magic 8-ball
+eight_ball = [
+  "It is certain",
+  "It is decidedly so",
+  "Without a doubt",
+  "Yes, definitely",
+  "You may rely on it",
+  "As I see it, yes",
+  "Most likely",
+  "Outlook good",
+  "Yes",
+  "Signs point to yes",
+  "Reply hazy try again",
+  "Ask again later",
+  "Better not tell you now",
+  "Cannot predict now",
+  "Concentrate and ask again",
+  "Don't count on it",
+  "My reply is no",
+  "My sources say no",
+  "Outlook not so good",
+  "Very doubtful"
+]
+
+# fortunes from [adult swim]
+fortunes = [
+  "You will be rich in debt",
+  "Call your mom",
+  "Eat that donut",
+  "You will crush someone's feelings",
+  "You will die alone with many cats",
+  "Diarrhea",
+  "Your dad will finally love you",
+  "Good hair day",
+  "No one will touch you inappropriately",
+  "Everyone will know what they want for dinner",
+  "Let it go",
+  "Don't be afraid to say yes",
+  "Don't be afraid to say no",
+  "Smile",
+  "All your laundered socks will have matches",
+  "Someone you don't know is not lying to you",
+  "You've already met your soulmate",
+  "You will be visited by three ghosts tonight",
+  "Your lucky numbers will be 4, 3, 7, 11, and 41",
+  "You'll order something but wish you'd ordered something else",
+  "Someone will tell you what you want to hear",
+  "No one likes that shirt",
+  "Google it",
+  "You're out of milk",
+  "Take up falconry",
+  "A fashion risk will pay off",
+  "You will fall on your ass but no one will see",
+  "That stain will come right out",
+  "That show you really like will still be cancelled",
+  "\"Don't you carry nothing / That might be a load / Come on, ease on down / Ease on down, down the road\""
+]
+
+# misfortunes
+misfortunes = [
+  "You will fall and break your leg.",
+  "You will fall and break your arm.",
+  "You will sprain your ankle.",
+  "You will stub your toe.",
+  "You will die.",
+  "Your pet will die.",
+  "You will get raped.",
+  "You will get audited.",
+  "You will get arrested.",
+  "Someone will be mean to you.",
+  "Someone you know will die.",
+  "Someone you know will get raped.",
+  "You will have a car accident.",
+  "You will get injured.",
+  "You will get a paper cut.",
+  "You will get sued.",
+  "You will have money problems.",
+  "You will get robbed.",
+  "You will get mugged.",
+  "You will get sick.",
+  "You will vomit.",
+  "You will get a terminal illness.",
+  "You will get an STD.",
+  "You will find out what an awful person you are."
+]
+
+# armanen runes
+armanen = [
+  "Yr { http://i.imgur.com/QCgTTit.png }",
+  "Hagal { http://i.imgur.com/hmqNO1x.png }",
+  "Ur { http://i.imgur.com/Sse1tNK.png }",
+  "Fa { http://i.imgur.com/zC7cS7M.png }",
+  "Bar { http://i.imgur.com/VA3zSqr.png }",
+  "Rit { http://i.imgur.com/BK2kpvj.png }",
+  "Os { http://i.imgur.com/nXWSWCl.png }",
+  "Tyr { http://i.imgur.com/w34JNgD.png }",
+  "Ka { http://i.imgur.com/X5TeoTh.png }",
+  "Gibor { http://i.imgur.com/tLHLSyP.png }",
+  "Is { http://i.imgur.com/meNfFda.png }",
+  "Dorn { http://i.imgur.com/G9WRfPl.png }",
+  "Sig { http://i.imgur.com/ogkcrgG.png }",
+  "Man { http://i.imgur.com/7XKbcCF.png }",
+  "Ar { http://i.imgur.com/hMG6IFF.png }",
+  "Laf { http://i.imgur.com/2Up3N5P.png }",
+  "Not { http://i.imgur.com/bUmgnRz.png }",
+  "Eh { http://i.imgur.com/bI1APQT.png }"
+]
+
+# runes
+# album: https://imgur.com/a/W3cmH
+runes = [
+  "Fehu { https://i.imgur.com/SjPESEW.gif }",
+  "Uruz { https://i.imgur.com/KBSvslk.gif }",
+  "Thurisaz { https://i.imgur.com/AFUYbye.gif }",
+  "Ansuz { https://i.imgur.com/Ps05ytE.gif }",
+  "Raidho { https://i.imgur.com/x5kG79B.gif }",
+  "Kenaz { https://i.imgur.com/wW5SpF0.gif }",
+  "Gebo { https://i.imgur.com/ELL6KSL.gif }",
+  "Wunjo { https://i.imgur.com/c8c5M8M.gif }",
+  "Hagalaz { https://i.imgur.com/Ni8tUul.gif }",
+  "Nauthiz { https://i.imgur.com/hUQGqft.gif }",
+  "Isa { https://i.imgur.com/NlDSgTT.gif }",
+  "Jera { https://i.imgur.com/lE2QZAN.gif }",
+  "Eihwaz { https://i.imgur.com/vGOO917.gif }",
+  "Perthro { https://i.imgur.com/NCWTCWT.gif }",
+  "Algiz { https://i.imgur.com/e6yy8EK.gif }",
+  "Sowilo { https://i.imgur.com/0cW16RB.gif }",
+  "Tiwaz { https://i.imgur.com/XD91cMh.gif }",
+  "Berkano { https://i.imgur.com/emH7iXn.gif }",
+  "Ehwaz { https://i.imgur.com/flRhgtH.gif }",
+  "Mannaz { https://i.imgur.com/KQXLM3A.gif }",
+  "Laguz { https://i.imgur.com/EUdAkUA.gif }",
+  "Ingwaz { https://i.imgur.com/D9jOPSz.gif }",
+  "Dagaz { https://i.imgur.com/DwbJt9c.gif }",
+  "Othala { https://i.imgur.com/Z2yyPkW.gif }"
+]
+
+# thoth
+# album: http://imgur.com/a/24ByN
+thoth = [
+  "0 - The Fool { http://i.imgur.com/PQ2nG95.jpg }",
+  "I - The Magus { http://i.imgur.com/qItZSaz.jpg }",
+  "II - The Priestess { http://i.imgur.com/joRLHGK.jpg }",
+  "III - The Empress { http://i.imgur.com/1xiJAUq.jpg }",
+  "IV - The Emperor { http://i.imgur.com/yVKoH2j.jpg }",
+  "V - The Hierophant { http://i.imgur.com/8q8wkZv.jpg }",
+  "VI - The Lovers { http://i.imgur.com/7fBAtUv.jpg }",
+  "VII - The Chariot { http://i.imgur.com/axTt8o6.jpg }",
+  "VIII - Adjustment { http://i.imgur.com/jFK0rW9.jpg }",
+  "IX - The Hermit { http://i.imgur.com/vKjpFv6.jpg }",
+  "X - Fortune { http://i.imgur.com/SfcEUFi.jpg }",
+  "XI - Lust { http://i.imgur.com/pybCauK.jpg }",
+  "XII - The Hanged Man { http://i.imgur.com/NH0vt4j.jpg }",
+  "XIII - Death { http://i.imgur.com/0RG898u.jpg }",
+  "XIV - Art { http://i.imgur.com/G91EXFL.jpg }",
+  "XV - The Devil { http://i.imgur.com/RnRASpz.jpg }",
+  "XVI - The Tower { http://i.imgur.com/S6Z2f1f.jpg }",
+  "XVII - The Star { http://i.imgur.com/3yYIGvm.jpg }",
+  "XVIII - The Moon { http://i.imgur.com/wECfVYO.jpg }",
+  "XIX - The Sun { http://i.imgur.com/NGwTuoK.jpg }",
+  "XX - The Aeon { http://i.imgur.com/LhXJy0f.jpg }",
+  "XXI - The Universe { http://i.imgur.com/HDwUWBF.jpg }",
+  "Ace of Wands { http://i.imgur.com/UK2efBo.jpg }",
+  "2 of Wands - Dominion { http://i.imgur.com/fbzFflB.jpg }",
+  "3 of Wands - Virtue { http://i.imgur.com/DwU6See.jpg }",
+  "4 of Wands - Completion { http://i.imgur.com/LiMx96X.jpg }",
+  "5 of Wands - Strife { http://i.imgur.com/rPlrbyT.jpg }",
+  "6 of Wands - Victory { http://i.imgur.com/YyB5fCr.jpg }",
+  "7 of Wands - Valour { http://i.imgur.com/nE0HLRN.jpg }",
+  "8 of Wands - Swiftness { http://i.imgur.com/ChFeclc.jpg }",
+  "9 of Wands - Strength { http://i.imgur.com/wEod3NT.jpg }",
+  "10 of Wands - Oppression { http://i.imgur.com/QipWoV0.jpg }",
+  "Knight of Wands { http://i.imgur.com/sDVt9RW.jpg }",
+  "Queen of Wands { http://i.imgur.com/cL17LkX.jpg }",
+  "Prince of Wands { http://i.imgur.com/mB468fd.jpg }",
+  "Princess of Wands { http://i.imgur.com/XMO3bNF.jpg }",
+  "Ace of Cups { http://i.imgur.com/qm5f07V.jpg }",
+  "2 of Cups - Love { http://i.imgur.com/AsweI48.jpg }",
+  "3 of Cups - Abundance { http://i.imgur.com/wzQVmtq.jpg }",
+  "4 of Cups - Luxury { http://i.imgur.com/ONZVO0P.jpg }",
+  "5 of Cups - Disappointment { http://i.imgur.com/xvuIqvn.jpg }",
+  "6 of Cups - Pleasure { http://i.imgur.com/Od1qfVh.jpg }",
+  "7 of Cups - Debauch { http://i.imgur.com/h2F7eFh.jpg }",
+  "8 of Cups - Indolence { http://i.imgur.com/PxdiTDy.jpg }",
+  "9 of Cups - Happiness { http://i.imgur.com/JLGko7R.jpg }",
+  "10 of Cups - Satiety { http://i.imgur.com/Wmm2lQL.jpg }",
+  "Knight of Cups { http://i.imgur.com/rbQZuJ0.jpg }",
+  "Queen of Cups { http://i.imgur.com/WdvOb9X.jpg }",
+  "Prince of Cups { http://i.imgur.com/CqfClbW.jpg }",
+  "Princess of Cups { http://i.imgur.com/BsgXCEO.jpg }",
+  "Ace of Swords { http://i.imgur.com/nbGXZMt.jpg }",
+  "2 of Swords - Peace { http://i.imgur.com/kpwBVKZ.jpg }",
+  "3 of Swords - Sorrow { http://i.imgur.com/0z9d1hY.jpg }",
+  "4 of Swords - Truce { http://i.imgur.com/9LNCSNC.jpg }",
+  "5 of Swords - Defeat { http://i.imgur.com/Gub5DXA.jpg }",
+  "6 of Swords - Science { http://i.imgur.com/etB8X8E.jpg }",
+  "7 of Swords - Futility { http://i.imgur.com/gk1ivXT.jpg }",
+  "8 of Swords - Interference { http://i.imgur.com/8eXSUQj.jpg }",
+  "9 of Swords - Cruelty { http://i.imgur.com/eRQ4XX4.jpg }",
+  "10 of Swords - Ruin { http://i.imgur.com/6E4h4d4.jpg }",
+  "Knight of Swords { http://i.imgur.com/YZIa5um.jpg }",
+  "Queen of Swords { http://i.imgur.com/hb0bjIQ.jpg }",
+  "Prince of Swords { http://i.imgur.com/U8CHSV9.jpg }",
+  "Princess of Swords { http://i.imgur.com/tfJ2Uu8.jpg }",
+  "Ace of Disks { http://i.imgur.com/6FszJp0.jpg }",
+  "2 of Disks - Change { http://i.imgur.com/TC3Z0dv.jpg }",
+  "3 of Disks - Works { http://i.imgur.com/ZRYRFoQ.jpg }",
+  "4 of Disks - Power { http://i.imgur.com/pDi6yuu.jpg }",
+  "5 of Disks - Worry { http://i.imgur.com/pEtyIqx.jpg }",
+  "6 of Disks - Success { http://i.imgur.com/M2HXS5A.jpg }",
+  "7 of Disks - Failure { http://i.imgur.com/ApPSuWl.jpg }",
+  "8 of Disks - Prudence { http://i.imgur.com/wg2g8gu.jpg }",
+  "9 of Disks - Gain { http://i.imgur.com/mEAyRq2.jpg }",
+  "10 of Disks - Wealth { http://i.imgur.com/Z3B5V5E.jpg }",
+  "Knight of Disks { http://i.imgur.com/iseQPhE.jpg }",
+  "Queen of Disks { http://i.imgur.com/NNi2jMu.jpg }",
+  "Prince of Disks { http://i.imgur.com/9CQeGof.jpg }",
+  "Princess of Disks { http://i.imgur.com/i2lye5C.jpg }"
+]
+
+# rider-waite-smith plus meanings
+# album: http://imgur.com/a/zBwe3
+rw_plus = [
+  [
+    "0 - The Fool { http://i.imgur.com/xwIpqIC.jpg } folly, mania, extravagance, intoxication, delirium, frenzy, bewrayment",
+    "[REVERSED] 0 - The Fool { http://i.imgur.com/xwIpqIC.jpg } negligence, absence, distribution, carelessness, apathy, nullity, vanity"
+  ],
+  [
+    "I - The Magician { http://i.imgur.com/mxJtSKd.jpg } skill, diplomacy, address, sickness, pain, loss, disaster, self-confidence, will, the Querent himself (if male)",
+    "[REVERSED] I - The Magician { http://i.imgur.com/mxJtSKd.jpg } physician, Magus, mental illness, disgrace, disquiet"
+  ],
+  [
+    "II - The High Priestess { http://i.imgur.com/d764bKL.jpg } secrets, mystery, the future as yet unrevealed, the woman who interests the Querent (if male); the Querent (if female) silence, tenacity; wisdom, science",
+    "[REVERSED] II - The High Priestess { http://i.imgur.com/d764bKL.jpg } passion, moral or physical ardor, conceit, surface knowledge"
+  ],
+  [
+    "III - The Empress { http://i.imgur.com/BVMYp3Z.jpg } fruitfulness, initiative, action, long days, clandestine, the unknown, difficulty, doubt, ignorance",
+    "[REVERSED] III - The Empress { http://i.imgur.com/BVMYp3Z.jpg } light, truth, the unraveling of involved matters, public rejoice, also, according to another reading - vacillation"
+  ],
+  [
+    "IV - The Emperor { http://i.imgur.com/VxmSea8.jpg } stability, power, aid, protection, a great person, conviction, reason",
+    "[REVERSED] IV - The Emperor { http://i.imgur.com/VxmSea8.jpg } benevolence, compassion, credit, also confusion to enemies, obstruction, immaturity"
+  ],
+  [
+    "V - The Hierophant { http://i.imgur.com/VbHYvph.jpg } marriage alliance, captivity, servitude, mercy and goodness, inspiration, the man to whom the Querent has recourse",
+    "[REVERSED] V - The Hierophant { http://i.imgur.com/VbHYvph.jpg } society, good understanding, concord, over-kindness, weakness"
+  ],
+  [
+    "VI - The Lovers { http://i.imgur.com/lwsa3LM.jpg } attraction, love, beauty, trials overcome",
+    "[REVERSED] VI - The Lovers { http://i.imgur.com/lwsa3LM.jpg } failure, foolish designs"
+  ],
+  [
+    "VII - The Chariot { http://i.imgur.com/LRMtkTi.jpg } succor, providence, also war, triumph, presumption, vengeance, trouble",
+    "[REVERSED] VII - The Chariot { http://i.imgur.com/LRMtkTi.jpg } riot, quarrel, dispute, litigation, defeat"
+  ],
+  [
+    "VIII - Strength { http://i.imgur.com/rtUPtsZ.jpg } power, energy, courage, magnanimity",
+    "[REVERSED] VIII - Strength { http://i.imgur.com/rtUPtsZ.jpg } abuse of power, despotism, weakness, discord"
+  ],
+  [
+    "IX - The Hermit { http://i.imgur.com/BJVCRmh.jpg } prudence, also and especially treason, dissimulation, corruption, roguery",
+    "[REVERSED] IX - The Hermit { http://i.imgur.com/BJVCRmh.jpg } concealment, disguise, policy, fear, unreasoned caution"
+  ],
+  [
+    "X - Wheel of Fortune { http://i.imgur.com/TEceoge.jpg } destiny, future, success, luck, felicity",
+    "[REVERSED] X - Wheel of Fortune { http://i.imgur.com/TEceoge.jpg } increase, abundance, superfluity"
+  ],
+  [
+    "XI - Justice { http://i.imgur.com/xaNM3PW.jpg } equity, rightness, probity, executive",
+    "[REVERSED] XI - Justice { http://i.imgur.com/xaNM3PW.jpg } law in all departments, bigotry, bias, excessive severity"
+  ],
+  [
+    "XII - The Hanged Man { http://i.imgur.com/XL6jhjQ.jpg } wisdom, trials, circumspection, discernment, sacrifice, intuition, divination, prophecy",
+    "[REVERSED] XII - The Hanged Man { http://i.imgur.com/XL6jhjQ.jpg } selfishness, the crowd, body politic"
+  ],
+  [
+    "XIII - Death { http://i.imgur.com/vN8frAu.jpg } end, mortality, destruction, corruption",
+    "[REVERSED] XIII - Death { http://i.imgur.com/vN8frAu.jpg } inertia, sleep, lethargy, petrification, somnambulism"
+  ],
+  [
+    "XIV - Temperance { http://i.imgur.com/b1g6FlS.jpg } economy, moderation, frugality, management, accommodation",
+    "[REVERSED] XIV - Temperance { http://i.imgur.com/b1g6FlS.jpg } things connected with churches, religions, sects, the priesthood, also unfortunate combinations, disunion, competing interests"
+  ],
+  [
+    "XV - The Devil { http://i.imgur.com/ppC8WVB.jpg } ravage, violence, force, vehemence, extraordinary efforts, fatality, that which is predestined but not for this reason evil",
+    "[REVERSED] XV - The Devil { http://i.imgur.com/ppC8WVB.jpg } evil fatality, weakness, pettiness, blindness"
+  ],
+  [
+    "XVI - The Tower { http://i.imgur.com/aBv2lbO.jpg } misery, distress, ruin, indigence, adversity, calamity, disgrace, deception",
+    "[REVERSED] XVI - The Tower { http://i.imgur.com/aBv2lbO.jpg } according to one account, a lesser degree of misery, distress, ruin, indigence, adversity, calamity, disgrace, deception; also oppression, imprisonment, tyranny"
+  ],
+  [
+    "XVII - The Star { http://i.imgur.com/S3WZmhm.jpg } loss, theft, privation, abandonment, although another reading suggests hope and bright prospects in the future",
+    "[REVERSED] XVII - The Star { http://i.imgur.com/S3WZmhm.jpg } arrogance, impotence, haughtiness"
+  ],
+  [
+    "XVIII - The Moon { http://i.imgur.com/oZtqyCr.jpg } hidden enemies, danger, calumny, darkness, terror, deception, error",
+    "[REVERSED] XVIII - The Moon { http://i.imgur.com/oZtqyCr.jpg } instability, inconstancy, silence, lesser degrees of deception and error"
+  ],
+  [
+    "XIX - The Sun { http://i.imgur.com/dalzqXX.jpg } material happiness, fortunate marriage, contentment",
+    "[REVERSED] XIX - The Sun { http://i.imgur.com/dalzqXX.jpg } a lesser degree of material happiness, fortunate marriage, contentment"
+  ],
+  [
+    "XX - Judgement { http://i.imgur.com/1DrOwqp.jpg } change of position, renewal, outcome",
+    "[REVERSED] XX - Judgement { http://i.imgur.com/1DrOwqp.jpg } weakness, puscillanimity, simplicity, also deliberation, decision, sentence"
+  ],
+  [
+    "XXI - The World { http://i.imgur.com/aRGuRFG.jpg } assured success, route, voyage, emigration, flight, change of place",
+    "[REVERSED] XXI - The World { http://i.imgur.com/aRGuRFG.jpg } inertia, fixity, stagnation, permanence"
+  ],
+  [
+    "Ace of Wands { http://i.imgur.com/DabavYD.jpg } creation, invention, enterprise, the powers which result in these, principle, beginning, source, birth, family, origin, the beginning of enterprises, according to another account - money, fortune, inheritance",
+    "[REVERSED] Ace of Wands { http://i.imgur.com/DabavYD.jpg } fall, decadence, ruin, perdition, to perish, also - clouded joy"
+  ],
+  [
+    "2 of Wands { http://i.imgur.com/BMU6WWF.jpg } riches, fortune, magnificence AND/OR physical suffering, disease, chagrin, sadness, mortification - it is a lord overlooking his dominion and alternately contemplating the globe, looking like the malady, the mortification, the sadness of Alexander amidst the grandeur of this world's wealth",
+    "[REVERSED] 2 of Wands { http://i.imgur.com/BMU6WWF.jpg } surprise, wonder, enchantment, emotion, trouble, fear"
+  ],
+  [
+    "3 of Wands { http://i.imgur.com/GLj7gSc.jpg } he symbolizes established strength, enterprise, effort, trade, discovery, commerce; those are his ships, bearing his merchandise, which are sailing over the sea",
+    "[REVERSED] 3 of Wands { http://i.imgur.com/GLj7gSc.jpg } the end of troubles, suspension or end of adversity, disappointment, and toil"
+  ],
+  [
+    "4 of Wands { http://i.imgur.com/UPqeaU3.jpg } country life, repose, concord, harmony, prosperity, peace, and the perfected work of these",
+    "[REVERSED] 4 of Wands { http://i.imgur.com/UPqeaU3.jpg } country life, repose, concord, harmony, prosperity, peace, and the perfected work of these - increase, felicity, beauty, embellishment"
+  ],
+  [
+    "5 of Wands { http://i.imgur.com/8bayVFQ.jpg } imitation, for example, sham fight, the strenuous competition and struggle of the search after riches and fortune: gold, gain, opulence",
+    "[REVERSED] 5 of Wands { http://i.imgur.com/8bayVFQ.jpg } trickery, contradiction, litigation, disputes"
+  ],
+  [
+    "6 of Wands { http://i.imgur.com/y2PDGpt.jpg } a victor triumphing; great news, such as might be carried in state by the King's courier; expectation crowned with its own desire, the crown of hope",
+    "[REVERSED] 6 of Wands { http://i.imgur.com/y2PDGpt.jpg } apprehension, fear - as of a victorious enemy at the gate, treachery, disloyalty, as of gates being opened to the enemy"
+  ],
+  [
+    "7 of Wands { http://i.imgur.com/vEbIZC5.jpg } it is valor, for on the surface, six are attacking one, who has, however, the vantage position; on the intellectual plane, it signifies discussion, wordy strife, in business - negotiations, war of trade, barter, competition; it is also success, for the combatant is on the top and his enemies may be unable to reach him",
+    "[REVERSED] 7 of Wands { http://i.imgur.com/vEbIZC5.jpg } perplexity, embarrassments, anxiety"
+  ],
+  [
+    "8 of Wands { http://i.imgur.com/63Gs9p7.jpg } activity in undertakings, the path of such activity, swiftness, as that of an express messenger; great haste, great hope, speed towards an end which promises assured felicity; that which is on the move, also the arrows of love",
+    "[REVERSED] 8 of Wands { http://i.imgur.com/63Gs9p7.jpg } arrows of jealousy, internal dispute, stingings of conscience, quarrels"
+  ],
+  [
+    "9 of Wands { http://i.imgur.com/DK5D6WT.jpg } signified is strength in opposition; if attacked, he will meet the onslaught boldly; with this main significance there are all its possuble adjuncts, including delay, suspension, adjournment",
+    "[REVERSED] 9 of Wands { http://i.imgur.com/DK5D6WT.jpg } obstacles, adversity, calamity"
+  ],
+  [
+    "10 of Wands { http://i.imgur.com/BFKf1UI.jpg } it is oppression; it is also fortune, gain, any kind of success of these things; it is also honor and good faith; it is also false-seeming, disguise, perfidity; the place which the figure is approaching may suffer from the rods that he carries; success is stultified if the 9 of Swords follows, and if about a lawsuit, there will be certain loss",
+    "[REVERSED] 10 of Wands { http://i.imgur.com/BFKf1UI.jpg } contrarities, difficulties, intrigues, and their analogies"
+  ],
+  [
+    "King of Wands { http://i.imgur.com/TC4ulvh.jpg } dark man, friendly, countryman, generally married, honest and conscientious",
+    "[REVERSED] King of Wands { http://i.imgur.com/TC4ulvh.jpg } good, but severe; austere, yet tolerant"
+  ],
+  [
+    "Queen of Wands { http://i.imgur.com/qW1mEme.jpg } a dark woman or a countrywoman, friendly, chaste, loving, honorable; if the card beside her signifies a man, she is well disposed towards him; if a woman, she is interested in the Querent; also, love of money",
+    "[REVERSED] Queen of Wands { http://i.imgur.com/qW1mEme.jpg } good, economical, obliging, serviceable; also signifies opposition, jealousy, deceit, and infidelity"
+  ],
+  [
+    "Knight of Wands { http://i.imgur.com/e6KDbgR.jpg } departure, absence, flight, emigration; a dark young man, friendly; change of residence",
+    "[REVERSED] Knight of Wands { http://i.imgur.com/e6KDbgR.jpg } rupture, division, interruption, discord"
+  ],
+  [
+    "Page of Wands { http://i.imgur.com/Yd2jSck.jpg } dark young man, faithful, a lover, an envoy, a postman; beside a man, he will bear favorable testimony concerning him; he is a dangerous rival, if followed by the page of cups; has the chief qualities of his suit",
+    "[REVERSED] Page of Wands { http://i.imgur.com/Yd2jSck.jpg } anecdotes, announcements, evil news; also indecision and the instability which usually accompanies it"
+  ],
+  [
+    "Ace of Cups { http://i.imgur.com/C7tqudR.jpg } true heart, joy, contentment, abode, nourishment, abundance, fertility, holy table, felicity",
+    "[REVERSED] Ace of Cups { http://i.imgur.com/C7tqudR.jpg } false heart, mutation, instability, revolution"
+  ],
+  [
+    "2 of Cups { http://i.imgur.com/lRYMKvv.jpg } love, passion, friendship, affinity, union, concord, sexual relations; that which nature has santified",
+    "[REVERSED] 2 of Cups { http://i.imgur.com/lRYMKvv.jpg } false love, folly, misunderstanding"
+  ],
+  [
+    "3 of Cups { http://i.imgur.com/k3OOClg.jpg } the conclusion of any matter; plenty, perfection, merriment, happiness, victory, fulfillment, solace, healing",
+    "[REVERSED] 3 of Cups { http://i.imgur.com/k3OOClg.jpg } expedition, dispatch, achievement, end"
+  ],
+  [
+    "4 of Cups { http://i.imgur.com/5a9PJMq.jpg } weariness, disgust, aversion, imaginary vexations - as if the wine of this world had caused satiety only; another cup of wine, as if a fairy gift, is now offered him, but he sees no consolation therein; this is also a card of blended pleasure",
+    "[REVERSED] 4 of Cups { http://i.imgur.com/5a9PJMq.jpg } novelty, omen, new instructions, new relations"
+  ],
+  [
+    "5 of Cups { http://i.imgur.com/CCqnB7K.jpg } it is a card of loss, but something remains; three have been taken, but two are left; it is a card of inheritance, transmission, and patrimony; it may be a card of marriage, but not without bitterness or frustration",
+    "[REVERSED] 5 of Cups { http://i.imgur.com/CCqnB7K.jpg } news, alliances, affinity, ancestry, return, false projects"
+  ],
+  [
+    "6 of Cups { http://i.imgur.com/6EYsVJI.jpg } a card of memories and of the past; for example, reflecting on childhood, happiness, enjoyment, but coming rather from the past, things that have vanished; another reading reverses this, suggesting new relations, new environment and new knowledge",
+    "[REVERSED] 6 of Cups { http://i.imgur.com/6EYsVJI.jpg } renewal, the future, that which will come to pass presently"
+  ],
+  [
+    "7 of Cups { http://i.imgur.com/eKoqpps.jpg } fairy favors, images of reflection, imagination, sentiment, things seen in the glass of contemplation, some attainment in these degrees but nothing permanent or substantial is suggested",
+    "[REVERSED] 7 of Cups { http://i.imgur.com/eKoqpps.jpg } desire, will, determination, project"
+  ],
+  [
+    "8 of Cups { http://i.imgur.com/e4Ga7nE.jpg } the card speaks for itself on the surface, but other readings are entirely antithetical - giving joy, mildness, timidity, honor, modesty",
+    "[REVERSED] 8 of Cups { http://i.imgur.com/e4Ga7nE.jpg } great joy, happiness, feasting"
+  ],
+  [
+    "9 of Cups { http://i.imgur.com/l4Ws2gO.jpg } concord, contentment, physical bien-être; also victory, success, advantage, satisfaction for the Querent or person for whom the consultation is made",
+    "[REVERSED] 9 of Cups { http://i.imgur.com/l4Ws2gO.jpg } truth, loyalty, liberty; but the readings vary and include mistakes, imperfections, etc."
+  ],
+  [
+    "10 of Cups { http://i.imgur.com/dCgX4Ia.jpg } contentment, repose of the entire heart - the perfection of that state, if with several picture cards, a person who is taking charges of the Querent's interests; also the town, village or country inhabited by the Querent",
+    "[REVERSED] 10 of Cups { http://i.imgur.com/dCgX4Ia.jpg } repose of the false heart, indignation, violence"
+  ],
+  [
+    "King of Cups { http://i.imgur.com/kva3dt9.jpg } fair man, man of business, law, or divinity, responsible, disposed to oblige the Querent; also equity, art and science, including those who profess science, law and art, creative intelligence",
+    "[REVERSED] King of Cups { http://i.imgur.com/kva3dt9.jpg } dishonest, double-dealing man, roguery, exaction, injustice, vice, scandal"
+  ],
+  [
+    "Queen of Cups { http://i.imgur.com/kJtgSAQ.jpg } good, fair woman, honest, devoted, who will do service to the Querent; loving intelligence, and hence the gift of vision, success, happiness, pleasure, also wisdom, virtue",
+    "[REVERSED] Queen of Cups { http://i.imgur.com/kJtgSAQ.jpg } the accounts vary; good woman, otherwise, distinguished woman but one not to be trusted, perverse woman, vice, dishonor, depravity"
+  ],
+  [
+    "Knight of Cups { http://i.imgur.com/uqqqLUq.jpg } arrival, approach - sometimes that of a messenger, advances, proposition, demeanor, invitation, incitement",
+    "[REVERSED] Knight of Cups { http://i.imgur.com/uqqqLUq.jpg } trickery, artifice, subtlety, swindling, duplicity, fraud"
+  ],
+  [
+    "Page of Cups { http://i.imgur.com/UUR02Qn.jpg } fair young man, one impelled to render service and with whom the Querent will be connected, a studious youth, news, message, application, reflection, meditation - also these things directed to business",
+    "[REVERSED] Page of Cups { http://i.imgur.com/UUR02Qn.jpg } taste, inclination, attachment, seduction, deception, artifice"
+  ],
+  [
+    "Ace of Swords { http://i.imgur.com/WnHJVUz.jpg } triumph, the excessive degree in everything, conquest, triumph of force; a card of great force, in love as well as in hatred",
+    "[REVERSED] Ace of Swords { http://i.imgur.com/WnHJVUz.jpg } disastrous results in: triumph, the excessive degree in everything, conquest, triumph of force, great force in love as well as in hatred; another account says - conception, childbirth, augmentation, multiplicity"
+  ],
+  [
+    "2 of Swords { http://i.imgur.com/hbeuU1m.jpg } conformity and the equipose which it suggests, courage, friendship, affection, concord in a state of arms, intimacy",
+    "[REVERSED] 2 of Swords { http://i.imgur.com/hbeuU1m.jpg } imposture, falsehood, duplicity, disloyalty"
+  ],
+  [
+    "3 of Swords { http://i.imgur.com/Ut69sBV.jpg } removal, absence, delay, division, rupture, dispersion, and all that the design signifies naturally",
+    "[REVERSED] 3 of Swords { http://i.imgur.com/Ut69sBV.jpg } mental alienation, error, loss, distraction, disorder, confusion"
+  ],
+  [
+    "4 of Swords { http://i.imgur.com/2jHpfqL.jpg } vigilance, retreat, solitude, hermit's repose, exile, tomb and coffin",
+    "[REVERSED] 4 of Swords { http://i.imgur.com/2jHpfqL.jpg } wise administration, circumspection, economy, avarice, precaution, testament"
+  ],
+  [
+    "5 of Swords { http://i.imgur.com/iWeFBUh.jpg } degradation, destruction, reversal, infamy, dishonor, loss",
+    "[REVERSED] 5 of Swords { http://i.imgur.com/iWeFBUh.jpg } degradation, destruction, reversal, infamy, dishonor, loss - burial and obsequies"
+  ],
+  [
+    "6 of Swords { http://i.imgur.com/nGvrP0t.jpg } journey by water, route, way, envoy, commissionary, expedient",
+    "[REVERSED] 6 of Swords { http://i.imgur.com/nGvrP0t.jpg } declaration, confession, publicity; one account says that it is a proposal of love"
+  ],
+  [
+    "7 of Swords { http://i.imgur.com/wOHMCCj.jpg } design, attempt, wish, hope, confidence - also quarrelling; a plan that may fail, annoyance",
+    "[REVERSED] 7 of Swords { http://i.imgur.com/wOHMCCj.jpg } good advice, counsel, instruction, slander, babbling"
+  ],
+  [
+    "8 of Swords { http://i.imgur.com/EvRHCRT.jpg } bad news, violent chagrin, crisis, censure, power in trammels, conflict, calumny - also sickness",
+    "[REVERSED] 8 of Swords { http://i.imgur.com/EvRHCRT.jpg } disquiet, difficulty, opposition, accident, treachery, the unforeseen, fatality"
+  ],
+  [
+    "9 of Swords { http://i.imgur.com/XBpVh02.jpg } death, failure, miscarriage, delay, deception, disappointment, despair",
+    "[REVERSED] 9 of Swords { http://i.imgur.com/XBpVh02.jpg } imprisonment, doubt, suspicion, reasonable fear, shame"
+  ],
+  [
+    "10 of Swords { http://i.imgur.com/zv74MLW.jpg } whatsoever is intimated by the design - also pain, affliction, tears, sadness, desolation",
+    "[REVERSED] 10 of Swords { http://i.imgur.com/zv74MLW.jpg } advantage, profit, success, favor, but none of these are permanent; also power and authority"
+  ],
+  [
+    "King of Swords { http://i.imgur.com/OqVhsfE.jpg } whatsoever arises out of the idea of judgment and all its connections - power, command, authority, militant intelligence, law, offices of the crown, and so forth",
+    "[REVERSED] King of Swords { http://i.imgur.com/OqVhsfE.jpg } cruelty, evil intentions, perversity, barbarity, breach of faith"
+  ],
+  [
+    "Queen of Swords { http://i.imgur.com/6ztXVin.jpg } widowhood, female sadness and embarrassment, absence, sterility, mourning, privation, separation",
+    "[REVERSED] Queen of Swords { http://i.imgur.com/6ztXVin.jpg } malice, bigotry, artifice, prudery, deceit"
+  ],
+  [
+    "Knight of Swords { http://i.imgur.com/sJfwrdN.jpg } skill, bravery, capacity, defense, address, enmity, wrath, war, destruction, opposition, resistance, ruin",
+    "[REVERSED] Knight of Swords { http://i.imgur.com/sJfwrdN.jpg } imprudence, incapacity, extravagance"
+  ],
+  [
+    "Page of Swords { http://i.imgur.com/qO0XgXa.jpg } authority, overseeing, secret service, vigilance, spying, examination, and the qualities thereto belonging",
+    "[REVERSED] Page of Swords { http://i.imgur.com/qO0XgXa.jpg } more evil side of authority, overseeing, secret service, vigilance, spying, examination, and the qualities thereto belonging; what is unforeseen, an unprepared state, sickness is also intimated"
+  ],
+  [
+    "Ace of Pentacles { http://i.imgur.com/3mglLg1.jpg } perfect contentment, felicity, ecstasy - also speedy intelligence, gold",
+    "[REVERSED] Ace of Pentacles { http://i.imgur.com/3mglLg1.jpg } the evil side of wealth, bad intelligence; also great riches"
+  ],
+  [
+    "2 of Pentacles { http://i.imgur.com/RQORVBu.jpg } it is represented as a card of gaiety, recreation and its connections, which is the subject of the design; but it is read also as news and messages in writing, such as obstacles, agitation, trouble, embroilment",
+    "[REVERSED] 2 of Pentacles { http://i.imgur.com/RQORVBu.jpg } enforced gaiety, simulated enjoyment, literal sense, handwriting, composition, letters of exchange"
+  ],
+  [
+    "3 of Pentacles { http://i.imgur.com/ubGCBP8.jpg } métier, trade, skilled labor; usually, however, regarded as a card of nobility, aristocracy, renown, glory",
+    "[REVERSED] 3 of Pentacles { http://i.imgur.com/ubGCBP8.jpg } mediocrity in work and otherwise, puerilty, pettiness, weakness"
+  ],
+  [
+    "4 of Pentacles { http://i.imgur.com/rx0nXma.jpg } the surety of possessions, cleaving to that which one has, gifts, legacy, inheritance",
+    "[REVERSED] 4 of Pentacles { http://i.imgur.com/rx0nXma.jpg } suspense, delay, opposition"
+  ],
+  [
+    "5 of Pentacles { http://i.imgur.com/SxOpbH1.jpg } it foretells material trouble above all, whether in the form illustrated, that is, destitution, or otherwise; for some cartomancists, it is a card of love and lovers - wife, husband, friend, mistress - also concordance, affinities; these alternatives cannot be harmonized",
+    "[REVERSED] 5 of Pentacles { http://i.imgur.com/SxOpbH1.jpg } disorder, chaos, ruin, discord, profligacy"
+  ],
+  [
+    "6 of Pentacles { http://i.imgur.com/izANDOZ.jpg } presents, gifts, gratification; another account says attention. vigilance, now is the accepted time, present prosperity, etc.",
+    "[REVERSED] 6 of Pentacles { http://i.imgur.com/izANDOZ.jpg } desire, cupidity, envy, jealousy, illusion"
+  ],
+  [
+    "7 of Pentacles { http://i.imgur.com/Y180oId.jpg } it is a card of money, business, barter - but one reading gives altercation, quarrel, and another innocence, ingenuity, purgation",
+    "[REVERSED] 7 of Pentacles { http://i.imgur.com/Y180oId.jpg } anxiety about money"
+  ],
+  [
+    "8 of Pentacles { http://i.imgur.com/AikIqPX.jpg } work, employment, commission, craftsmanship, skill in craft and business",
+    "[REVERSED] 8 of Pentacles { http://i.imgur.com/AikIqPX.jpg } voided ambition, vanity, cupidity, exaction, usury"
+  ],
+  [
+    "9 of Pentacles { http://i.imgur.com/aadANyr.jpg } prudence, safety, success, accomplishment, certitude, discernment",
+    "[REVERSED] 9 of Pentacles { http://i.imgur.com/aadANyr.jpg } roguery, deception, voided project, bad faith"
+  ],
+  [
+    "10 of Pentacles { http://i.imgur.com/5W91m6C.jpg } gain, riches, family matters, archives, extraction, the abode of a family",
+    "[REVERSED] 10 of Pentacles { http://i.imgur.com/5W91m6C.jpg } chance, fatality, loss, robbery, games of hazard; sometimes gift, dowry, pension"
+  ],
+  [
+    "King of Pentacles { http://i.imgur.com/In9i1FZ.jpg } valor, realizing intelligence, business and normal intellectual aptitude, sometimes mathematical gifts and attainments of this kind - success in these paths",
+    "[REVERSED] King of Pentacles { http://i.imgur.com/In9i1FZ.jpg } vice, weakness, ugliness, perversity, corruption, peril"
+  ],
+  [
+    "Queen of Pentacles { http://i.imgur.com/55RpqQY.jpg } opulence, magnificence, generosity, security, liberty",
+    "[REVERSED] Queen of Pentacles { http://i.imgur.com/55RpqQY.jpg } evil, fear, suspicion, suspense, mistrust"
+  ],
+  [
+    "Knight of Pentacles { http://i.imgur.com/p1291Jn.jpg } utility, interest, serviceableness, rectitude, responsibility",
+    "[REVERSED] Knight of Pentacles { http://i.imgur.com/p1291Jn.jpg } inertia, idleness, repose of that kind, stagnation - also discouragement, carelessness"
+  ],
+  [
+    "Page of Pentacles { http://i.imgur.com/xxPXOML.jpg } application, study scholarship, reflection; another reading says news, messages, and the bringer thereof - also rule, management",
+    "[REVERSED] Page of Pentacles { http://i.imgur.com/xxPXOML.jpg } prodigality, dissipation, liberality, luxury, unfavorable news"
+  ]
+]
+
+# haindl
+haindl = [
+  [
+    "0 The Fool: Act impulsively, follow your feelings, surprise, wonder, excitement, take opportunities that arise.",
+    "[REVERSED] 0 The Fool: Difficulty believing in your instincts, fear of stepping into the unknown, do not be reckless."
+  ],
+  [
+    "1 The Magician: Power, Strength, Being in control of one's life. Transforming old situations, bringing in new ones. A burst of energy, Creativity, Focused Will.",
+    "[REVERSED] 1 The Magician: Natural expression of energy blocked. Inner resistance. Arrogance. Misuse of personal power."
+  ],
+  [
+    "2 The High Priestess: A time for quiet, for looking inward. Seek peace. Use intuition and feeling. Peace and joy. Possibly, a lover who needs solitude or is avoiding commitment.",
+    "[REVERSED] 2 The High Priestess: A time for action, for involvements with others. Commitment in romance."
+  ],
+  [
+    "3 The Empress: Passion, Love of nature, Motherhood. Joyous Activity.",
+    "[REVERSED] 3 The Empress: Passion blocked. Difficulty expressing oneself. Problems with one's mother."
+  ],
+  [
+    "4 The Emperor: Influence of Society, law. Resurgence of energy. Sexual potency. Arrogance. Insensitivity. Energy and Desire.",
+    "[REVERSED] 4 The Emperor: Blocked possibility. Development of sensitivity."
+  ],
+  [
+    "5 The Hierophant: Tradition, community and teachings. Conformity. Marriage, or any solemn commitment.",
+    "[REVERSED] 5 The Hierophant: Social pressure. Doctrines and ideas that have lost meaning. Originality. Gullibility."
+  ],
+  [
+    "6 The Lovers: The importance of love. Depending on the place in the spread, the state of a specific relationship.",
+    "[REVERSED] 6 The Lovers: a relationship ending, trouble in a relationship. Lack of love. Insecurity, loneliness. Loss of Balance."
+  ],
+  [
+    "7 The Chariot: Willpower in dealing with problems. Will to continue. Deep fear driving a person. Triumph over fear.",
+    "[REVERSED] 7 The Chariot: Lack of will. Passivity or weakness. It may be best to let things run their course."
+  ],
+  [
+    "8 Strength: Inner strength. Love and gentleness. Confidence. Ability to give love.",
+    "[REVERSED] 8 Strength: Feeling blocked from one's power. Weak. Overwhelmed. Meditation or some form of relaxation may help restore strength."
+  ],
+  [
+    "9 The Hermit: Withdrawal from outside interests. Self-reliance. Self-creation. Developing one's personality. Gaining wisdom. Powerful dreams.",
+    "[REVERSED] 9 The Hermit: Involvement with others. Fear of loneliness. Disturbing dreams. A desire to not grow up."
+  ],
+  [
+    "10 The Wheel of Fortune: Change of circumstances. Taking hold of one's life. Grabbing hold of fate. Time to take what life has given you.",
+    "[REVERSED] 10 The Wheel of Fortune: Difficulty adjusting to changes. Resistance to change."
+  ],
+  [
+    "11 Justice: Examine your life, weigh things in the balance. A relationship is going badly. Analysis. Take a balanced view.",
+    "[REVERSED] 11 Justice: Do not act out of habit. Imbalance. You may be acting unfairly. Trying to avoid an honest evaluation."
+  ],
+  [
+    "12 The Hanged Man: Attachment. Deep spiritual awareness. Independence.",
+    "[REVERSED] 12 The Hanged Man: Being overly influenced by outside ideas. Pressure to conform. Demands. Sacrificing something to get past hangups. Lack of purpose."
+  ],
+  [
+    "13 Death: Rarely refers to physical death. More about ideas about death. Psychologically, letting go. New opportunities.",
+    "[REVERSED] 13 Death: Resisting change. Stagnation. Inertia. Pain of giving something up."
+  ],
+  [
+    "14 Alchemy: Measurement and combination. Do not allow setbacks to turn enthusiasm into its mirror image of dejection. Take control. Moderation.",
+    "[REVERSED] 14 Alchemy: Going to extremes. Excessive behavior. Conserve energy. A person out of control."
+  ],
+  [
+    "15 The Devil: Something exciting, possibly dangerous or forbidden. Temptation. Physical gratification. Exploring darker feelings. Wild action opens up new areas in life.",
+    "[REVERSED] 15 The Devil: Resisting temptations. Not a time for sensuality. Fear of one's own decisions."
+  ],
+  [
+    "16 The Tower: Long-standing activity or approach that may bring about disaster if continued. Pressure building up. Long-buried emotions let loose. News. A flash of understanding.",
+    "[REVERSED] 16 The Tower: Similar to upright meanings, but less severe. A shaking up. A minor disturbance."
+  ],
+  [
+    "17 The Star: Renewal. Reality and feeling. Cleansing. Humility. Hope.",
+    "[REVERSED] 17 The Star: Fears for the future. Isolation. Tension or anxiety. Hope."
+  ],
+  [
+    "18 The Moon: Imagination. Fantasies, daydreams, strong dreams. The sources of creativity.",
+    "[REVERSED] 18 The Moon: The time to return to \"solar\", rational activities. Conscious mind blocking the unconscious."
+  ],
+  [
+    "19 The Sun: Joy and simplicity. Life is wonderful. Energy. Activity, excitement, optimism. Rational approach. Confidence. Sexual Desire.",
+    "[REVERSED] 19 The Sun: Sun is clouded over. Day-to-day problems, though happiness remains. Loss of confidence. Frustration."
+  ],
+  [
+    "20 Aeon: Renewal. Optimism, in spite of a painful period of change. Change. Spontaneity. All things are possible. Old world seen through new eyes.",
+    "[REVERSED] 20 Aeon: Rebirth. Resisting change. A new life, possibly not acknowledged."
+  ],
+  [
+    "21 The Universe: Success. Becoming happier, more fulfilled. Recovery from illness. An exciting future. Stagnation. Lack of willpower and confidence.",
+    "[REVERSED] 21 The Universe: Stagnation. Lack of willpower and confidence. Self-defined limitations. Resistance or opposition."
+  ],
+  [
+    "Ace of Wands: Gift of fire. Energy, optimism, confidence. Desire. Beginnings.",
+    "[REVERSED] Ace of Wands: Lack of focus. Scattered or confused efforts. Pessimism."
+  ],
+  [
+    "Two of Wands: Power, Strong Will. The power of spiritual truth.",
+    "[REVERSED] Two of Wands: Voluntarily giving up a position of power. Seeking adventures. Misuse of power."
+  ],
+  [
+    "Three of Wands: Acting in harmony with nature. Purpose. Good fortune.",
+    "[REVERSED] Three of Wands: Being out of harmony with the situation. Difficulty in finding the point of life or in discovering worthy goals."
+  ],
+  [
+    "Four of Wands: New life. Take action at the right moment. Excitement and growth.",
+    "[REVERSED] Four of Wands: Errors. Impatient for new start. Wait for genuine opportunity."
+  ],
+  [
+    "Five of Wands: Strife and battle, without hatred or bitterness. Avoidance.",
+    "[REVERSED] Five of Wands: Personal and aggressive conflicts. Bitterness towards others."
+  ],
+  [
+    "Six of Wands: Triumph. Confidence and firm action will lead to triumph. Inspiration.",
+    "[REVERSED] Six of Wands: Loss of belief. Negative attitude can lead to failure."
+  ],
+  [
+    "Seven of Wands: Courage and daring - possibly, the courage to retreat. Using one's power for transformation.",
+    "[REVERSED] Seven of Wands: Loss of nerve. Hesitation. Seek an alternative, possibly reconciliation."
+  ],
+  [
+    "Eight of Wands: Definite movement. Progress. A worthy goal. Finding direction in life. Development of a new love affair.",
+    "[REVERSED] Eight of Wands: Scattered energy. Contradictory activities. Fear of taking action. Shyness, or jealousy."
+  ],
+  [
+    "Nine of Wands: Great energy. Arrogance, especially toward those who feel weak. Life's resiliency.",
+    "[REVERSED] Nine of Wands: Weakness. Passivity. Arrogance or misuse of power."
+  ],
+  [
+    "Ten of Wands: Oppression. Depression. Transformation from cruelty to liberation. Possible fall.",
+    "[REVERSED] Ten of Wands: Emerging from a bad situation. Wisdom gained through adversity."
+  ],
+  [
+    "Mother of Wands in the East (Kali): A wild, female energy. Dark power, sexual energy.",
+    "[REVERSED] Mother of Wands in the East (Kali): Kali-like energy suppressed. Destructiveness outweighs love and joy."
+  ],
+  [
+    "Father of Wands in the East (Brahma): A calm person, possibly stuffy. A rooted quality that gives strength.",
+    "[REVERSED] Father of Wands in the East (Brahma): Snobbishness, especially intellectual. Devotion. Doubts, weakness, confusion."
+  ],
+  [
+    "Daughter of Wands in the East (Radha): Abundance. Joy. Good Sense. Culture.",
+    "[REVERSED] Daughter of Wands in the East (Radha): Unfulfilled potential."
+  ],
+  [
+    "Son of Wands in the East (Krishna): Love of life. Interest in the arts. Trickster. Attractiveness.",
+    "[REVERSED] Son of Wands in the East (Krishna): Difficulty. Conflict. Problems may bring out depths in a person."
+  ],
+  [
+    "Ace of Cups: Happiness. Love, joy, optimism. Love flowing openly between two people.",
+    "[REVERSED] Ace of Cups: Happiness is blocked. Trouble communicating. Value of life questioned."
+  ],
+  [
+    "Two of Cups: Relationship. Possibly, the need to make a commitment.",
+    "[REVERSED] Two of Cups: Quarreling or jealousy. Uncertain future. Lack of commitment."
+  ],
+  [
+    "Three of Cups: Great feeling. Extreme joy that can turn to tears.",
+    "[REVERSED] Three of Cups: Feelings dammed up. Instability."
+  ],
+  [
+    "Four of Cups: Find a moment of peace and balance. Action is possible and will lead to growth.",
+    "[REVERSED] Four of Cups: Loss of balance. Suppressed emotions."
+  ],
+  [
+    "Five of Cups: Be patient. Confusion and disappointment are exaggerated.",
+    "[REVERSED] Five of Cups: Coming out of disappointment. A realistic view of the past."
+  ],
+  [
+    "Six of Cups: Happiness. Loving and being loved. Balance and peace.",
+    "[REVERSED] Six of Cups: The happy moment may be passing. Not recognizing happiness. Unbalanced or excessive behavior."
+  ],
+  [
+    "Seven of Cups: Beware of arrogance and complacency. Fantasies.",
+    "[REVERSED] Seven of Cups: Hidden problems emerging. More realistic outlook."
+  ],
+  [
+    "Eight of Cups: Failure. Arrogance and greed. Accept help from others.",
+    "[REVERSED] Eight of Cups: Hidden joy. New happiness. Positive change."
+  ],
+  [
+    "Nine of Cups: Fortune. Wealth. Emotional breakthrough. Generosity.",
+    "[REVERSED] Nine of Cups: Stinginess. Loss."
+  ],
+  [
+    "Ten of Cups: Successful development, with some effort required.",
+    "[REVERSED] Ten of Cups: Success Blocked. Negativity, apathy."
+  ],
+  [
+    "Mother of Cups in the North (Venus of Willendorf): Earthy, Plain, Honest person. Matriarch. Ancient Forces.",
+    "[REVERSED] Mother of Cups in the North (Venus of Willendorf): Someone out of touch with physical realities."
+  ],
+  [
+    "Father of Cups in the North (Odin): A powerful, domineering person. Intelligence. Creativity. Generous and Loving.",
+    "[REVERSED] Father of Cups in the North (Odin): Father's power disrupted."
+  ],
+  [
+    "Daughter of Cups in the North (Brigid): Calmness and radiance. Peacefulness, and strength of power.",
+    "[REVERSED] Daughter of Cups in the North (Brigid): Loss of self-assurance. Importance of personal history ignored."
+  ],
+  [
+    "Son of Cups in the North (Parsival): Sweet-tempered, but naive person. A good heart. A test.",
+    "[REVERSED] Son of Cups in the North (Parsival): Avoiding responsibility. Callousness."
+  ],
+  [
+    "Ace of Swords: Intelligence. Clear thinking. Powerful personality or emotions.",
+    "[REVERSED] Ace of Swords: Anger. Aggression. Distorted thinking."
+  ],
+  [
+    "Two of Swords: Tranquility. Opportunity for prospering.",
+    "[REVERSED] Two of Swords: Disruption. Seek tranquility within."
+  ],
+  [
+    "Three of Swords: Oppressive situations. Mourning. Sorrow.",
+    "[REVERSED] Three of Swords: Difficulty accepting loss. The natural cycle will bring renewal."
+  ],
+  [
+    "Four of Swords: A moment of calm.",
+    "[REVERSED] Four of Swords: Movement away from silence and peace. New beginnings or old troubles."
+  ],
+  [
+    "Five of Swords: An overwhelming situation. Need to hold onto principles until the time comes to make a change.",
+    "[REVERSED] Five of Swords: Situation growing better, with courage and persistence."
+  ],
+  [
+    "Six of Swords: Need for objectivity and honesty.",
+    "[REVERSED] Six of Swords: Idealism used for selfish ends."
+  ],
+  [
+    "Seven of Swords: Depression. Possibly, the need to leave a situation for new possibilities.",
+    "[REVERSED] Seven of Swords: Attempting to deal with feelings of uselessness."
+  ],
+  [
+    "Eight of Swords: Interference. Gossip. Help or Advice.",
+    "[REVERSED] Eight of Swords: No interference. Avoiding responsibility."
+  ],
+  [
+    "Nine of Swords: Cruelty. Feeling like a victim.",
+    "[REVERSED] Nine of Swords: Relief from cruel conditions. Confusion. Manipulation."
+  ],
+  [
+    "Ten of Swords: Pain, confusion. Personal difficulties. Problems.",
+    "[REVERSED] Ten of Swords: Troubles passing. Relief. Need to rest."
+  ],
+  [
+    "Mother of Swords in the South (Nut): A mysterious person. Devotion. Autonomy.",
+    "[REVERSED] Mother of Swords in the South (Nut): Need for privacy exaggerated. Conflict between love of solitude and love for others."
+  ],
+  [
+    "Father of Swords in the South (Ra): Dominant, autocratic person. Delegating authority to others. Strong, creative intellect. Fairness.",
+    "[REVERSED] Father of Swords in the South (Ra): Tyrant. A person jealous of personal powerful."
+  ],
+  [
+    "Daughter of Swords in the South (Isis): A powerful figure, confident and dynamic.",
+    "[REVERSED] Daughter of Swords in the South (Isis): Loss of confidence. Depression."
+  ],
+  [
+    "Son of Swords in the South (Osiris): Someone gentle yet persuasive. An initiate into esoteric mysteries. Kindness.",
+    "[REVERSED] Son of Swords in the South (Osiris): Weakness, possibly corruption."
+  ],
+  [
+    "Ace of Stones: Health. Prosperity. Beauty. Good weather.",
+    "[REVERSED] Ace of Stones: Unappreciated gifts. Materialism. Conflicts over money or property."
+  ],
+  [
+    "Two of Stones: Harmonic situations.",
+    "[REVERSED] Two of Stones: Disharmony. A time for solitude."
+  ],
+  [
+    "Three of Stones: Work. Satisfaction.",
+    "[REVERSED] Three of Stones: Work not going well. Unemployment. Laziness."
+  ],
+  [
+    "Four of Stones: Creativity and new ideas. Overwhelming energy.",
+    "[REVERSED] Four of Stones: Losing a sense of place. Fear."
+  ],
+  [
+    "Five of Stones: Wintry time. Money troubles. Illness. Isolation.",
+    "[REVERSED] Five of Stones: Movement for the better. Wait, act cautiously."
+  ],
+  [
+    "Six of Stones: Great success and joy, possibly short-lived. Find inner truth and happiness.",
+    "[REVERSED] Six of Stones: Moment beginning to end. Save or invest money carefully during prosperity."
+  ],
+  [
+    "Seven of Stones: Disharmony. Without careful redirection, failure is possible.",
+    "[REVERSED] Seven of Stones: Recovery. Fresh Start."
+  ],
+  [
+    "Eight of Stones: Be careful and moderate. Avoid excessive action.",
+    "[REVERSED] Eight of Stones: Lack of moderation. Impatience. Ignorance."
+  ],
+  [
+    "Nine of Stones: Fortune. Money, security, health, comfort. Avoid complacency, greed or conceit.",
+    "[REVERSED] Nine of Stones: Misusing material gain. Greed."
+  ],
+  [
+    "Ten of Stones: Good life. Health. A sense of solid reality.",
+    "[REVERSED] Ten of Stones: Delay. Not appreciating material wealth and security."
+  ],
+  [
+    "Mother of Stones in the West (Spider Woman): Serene, probably older woman. Self-confidence.",
+    "[REVERSED] Mother of Stones in the West (Spider Woman): Difficulty in staying still and appreciating life. Loss of personal center."
+  ],
+  [
+    "Father of Stones in the West (Old Man): Fundamental male principle. Someone who cares deeply for family and for nature. Hard Worker.",
+    "[REVERSED] Father of Stones in the West (Old Man): Cold and uncaring. Lack of success. Pain at the suffering of the world."
+  ],
+  [
+    "Daughter of Stones in the West (White Buffalo Woman): Willingness to take responsibility for something greater than oneself. Love, courage, and dedication. Inner beauty.",
+    "[REVERSED] Daughter of Stones in the West (White Buffalo Woman): Difficulty getting across ideas or emotions. Feeling out of place."
+  ],
+  [
+    "Son of Stones in the West (Chief Seattle): Taking action to make positive change - with the benefit of the next seven generations in mind.",
+    "[REVERSED] Son of Stones in the West (Chief Seattle): Despair. Selfishness leads to feeling lost."
+  ]
+]
+
+# bane quotes
+bane = (
+  '''It would be extremely painful. 
+     I AM the League of Shadows, and I'm here to fulfill Ra's al Ghul's destiny! 
+     You fight like a younger man, with nothing held back. Admirable but mistaken. 
+     Oh, you think darkness is your ally. But you merely adopted the dark; I was born in it, moulded by it. I didn't see the light until I was already a man, by then it was nothing to me but BLINDING! 
+     The shadows betray you, because they belong to me! 
+     I will show you where I have made my home while preparing to bring justice. Then I will break you. 
+     Ah, yes... I was wondering what would break first... Your spirit, or your body? 
+  ''')
+
+# necronomicon quotes
+necronomicon = (
+  '''This is the testimony of all that I have seen, and all that I have learned, in those years that I have possessed the Three Seals of MASSHU. I have seen One Thousand and-One moons, and surely this is enough for the span of a mans life, though it is said the Prophets lived much longer. I am weak, and ill, and bear great tired- ness and exhaustion, and a sigh hangs in my breast like a dark lantern, I am old.
+     The wolves carry their name in their midnight speeches, and that quiet, subtle Voice is summoning me from afar. And a voice much closer will shout into my ear with unholy impatience. The weight of my soul will decide its final resting place. Before the time, I must put down here all that I can concerning the horrors that stalk Without, and which lie in wait at the door of every man, for this is the ancient arcana that has been handed down of old, but which has been forgotten by all but a few men, the worshippers of the Ancient Ones (may their names be blotted out!)
+     And if I do not finish this task, take what is here and discover the rest, for time is short and mankind does not know or understand the evil that awaits it, from every side, from every open Gate, from every broken barrier, from every mindless acolyte at the alters of madness.
+     For this is the Book of the Dead, the Book of the Black Earth, that I have writ down at the peril of my life, exactly as I received it, on the planes of IGIGI, the cruel celestial spirits from beyond the Wanderers of the Wastes.
+     Let all who read this book be warned thereby that the habitation of men are seen and surveyed by that Ancient Race of gods and demons from a time before time, and that they seek revenge for that forgotten battle that took place somewhere in the Cosmos and rent the Worlds in the days before the creation of Man, when the Elder Gods walked the Spaces, the race of MARDUK, as he is known to the Chaldeans, and of ENKI our master, the Lord of Magicians.
+     Know, then, that I have trod all the Zones of the Gods, and also the places of Azonei, and have descended into the foul places of Death and Eternal Thirst, which may be reached through the Gate of GANZIR, which was built in UR in the days before Babylonian was.
+     Know, too, that I have spoken with all manner of spirit and daemon, whose names are no longer known in the societies of Man, or were never known. And the seals of these are writ herein ; yet others I must take with me when I leave you. ANU have mercy on my soul!
+     I have seen the Unknown Lands, that no map has ever charted. I have lived in the deserts and the wastelands, and spoken with demons and the souls of slaughtered men, and of women who have died in childbirth, victims of the she-fiend LAMMASHTA.
+     I have traveled beneath the Seas, in search of the Palace of Our Master, and found the stone monuments of vanquished civilizations, and de-ciphered the writings of some of these; while still others remain mysteries to any man who lives. And these civilizations were destroyed because of the knowledge contained in this book.
+     I have traveled among the stars, and trembled before the gods. I have at last found the formula by which I passed the gate of ARZIR, and passed into the forbidden realms of the foul IGIGI.
+     I have raised demons, and the dead.
+     I have summoned the ghosts of my ancestors to real and visible appearance on the tops of temples built to reach the stars, and built to touch the nethermost cavities of HADES. I have wrestled with the Black Magician, AZAG-THOTH, in vain, and fled to the Earth by calling upon INANNA and her brother MARDUK, Lord of the double-headed AXE.
+     I have raised armies against the Lands of the East, by summoning the hordes of fiends I have made subject unto me, and so doing found NGAA, the god of the heathens, who breathes flame and roars like a thousand thunders.
+     I have found fear.
+     I have found the Gate that leads to the Outside, by which the Ancient Ones, who ever seek the entrance to our world, keep eternal watch. I have smelled the vapors of that Ancient One, Queen of the Outside, whose name is writ in the MAGAN text, the testament of some dead civilization whose priests, seeking power, swing open the dread, evil Gate for an hour past the time and were consumed.
+     I came to possess this knowledge through circumstances quite peculiar, while still the unlettered son of a shepherd in what is called Mesopotamia by the Greeks.
+     When I was only a youth, traveling alone in the mountains to the East, called MASSHU by the people who live there, I came upon a grey rock carved with three strange symbols. It stood as high as a man, and as wide around as a bull. It was firmly in the ground, and I could not move it. Thinking no more of the carvings, save that they might be the work of a king to mark some Ancient victory over an enemy, I built a fire at its foot to protect me from the from the wolves that wander in that regions and went to sleep, for it was night and I was far from my village, being Bet Durrabia.
+     Being about three hours from dawn, in the nineteenth of Shabatu, I was awakened by the howl of a dog, or perhaps a wolf, uncommonly loud and close at hand. The fire had died to its embers, and these red, glowing coals cast a faint, dancing shadow across the stone monument with the three carvings. I began to make haste to build another fire when, at once, the grey rock began to rise slowly into the air, as if it were a dove. I could not move or speak for the fear that seized upon my spine and wrapped cold fingers around my skull. The Dik of Azug-bel-ya was no stranger seemed to melt into my hands!
+     Presently, I heard a voice, softly, some distance away and a more practical fear, that the possibility of robbers, took hold of me and I rolled behind weeds, trembling. Another voice joined the first, and soon several men in black robes of thieves came together over the place where I was, surrounding the floating rock, of which they did not exhibit in the least fright.
+     I could see clearly now that the three carvings on the stone monument were glowing, a flame red color, as through the rock were on fire. The figures were murmuring together in prayer or invocation, of which only a few words could be heard, and these in some unknown tongue; though, ANU have mercy on my soul!, these rituals are not unknown to me any longer.
+     The figures, whose faces I could not see or recognize, began to make wild passes in the air with knives that glinted cold and sharp in the mountain night.
+     From beneath the floating rock, out of the very ground where it had sat, came rising the tail of a serpent. This serpent was surely larger than any I had ever seen. The thinnest section thereof was fully that of the arms of two men, and as it rose from the earth it was followed by another, although the end of the first was not seen as it seemed to reach down into the very Pit itself. These were followed by still more, and the ground began to tremble under the pressure of so many of these enormous arms. The chanting of the priests, for I knew them now to be some the servants of some hidden Power, became much louder and nearly hysterical.
+     IA! IA! ZI AZAG!
+     IA!IA! ZI AZKAK!
+     IA! IA! KUTULU ZI KUR!
+     IA!
+     The ground where I was hiding became wet with some substance, being slightly downhill from the scene I was witnessing. I touched the wetness and found it to be blood. In horror I screamed and gave my presence away to the priests. They turned toward me, and I saw with loathing that they had cut their chests with the daggers they had used to raise the stone, for some mystical purpose I could not then divine; although I now know that blood is the very food of these spirits, which is why that field after the battles of war glows with an unnatural light, the manifestation of the spirits feeding thereon.
+     May ANU protect us all!
+     My scream had the effect of casting their ritual into chaos and disorder. I raced through the mountain path by which I had come, and the priests came running after me, although some seemed to stay behind, perhaps to finish the Rites. However, as I ran wildly down the slopes in the cold night, my heart gave rise in my chest and my head growing hot, the sound of splitting rocks and thunder came from behind me and shook the very ground I ran on. In fright and haste I fell to the earth.
+     Rising, I turned to face whatever attacker had come nearest me, though I was unarmed. To my surprise, what I saw was no priest of ancient horror, no necromancer of that forbidden Art, but black robes fallen upon the grass and weeds, with no seeming presence of life or bodies beneath them.
+     I walked cautiously to the first and, picking up a long twig, lifted the robe from the tangle of weeds and thorns. All that remained of the priest was a pool of slime, like green oil, and the smell of a body lain long in the sun to rot. Such a stench nearly overpowered me, but I was resolute to find the others, to see if the same fortune had also befallen them.
+     Walking back up the slope that I had so fearfully run down only moments ago, I came across yet another of the black priests, in identical condition to the first. I kept walking, passing more of the robes as I went, not venturing to overturn them any longer. Then, I finally came upon the grey stone monument that had risen unnaturally into the air at the command of the priests. It was now upon the ground once more, but the carvings still glowed with supernatural light. The serpents, or what I had then thought of as serpents, had disappeared. But in the dead embers of the fire, now cold and black, was a shining metal plate.
+     I picked it up and saw that it was also carved, as the stone, but very intricately, after a fashion I could not understand. It did not bear the same markings as the stone, but I had the feeling I could almost read the characters, but could not, as though I once knew the tongue but had since long forgotten. Mt head began to ache as though a devil was pounding my skull, when a shaft of moonlight hit the metal amulet, for I know now what it was, and a voice entered my head and told me the secrets of the scene I had witnessed in one word: KUTULU.
+     In that moment, as though whispered fiercely into my ear, I understood. 
+     Henceforth, from that fateful night in the mountains of MASSHU, I wandered about the countryside in search of the key to the secret knowledge that had been given me. And it was a painful and lonely journey, during which time I took no wife, called no house or village my home, and dwelt in various countries, often in caves or in the deserts, learning several tongues as a traveler, to bargain with the trades people and learn of the news and customs. But my bargaining was with the Powers that reside in each of these countries. And soon, I came to understand many things of which before I had no knowledge, except perhaps in dreams. The friends of my youth deserted me, and I them. When I was seven years gone from my family, I learned that they had all died of their own hand, for reasons no one was able to tell me; their flocks had later been slain as the victims of some strange epidemic.
+     I wandered as a beggar, being fed from town to town as the local people saw fit, often being stoned instead of threatened with imprisonment. On occasion, I was able to convince some learned man that I was a sincere scholar, and was thereby permitted to read the Ancient Records in which the details of necromancy, sorcery, magick and alchemy are given. I learned of the spells that cause men illness, the plague, blindness, insanity and even death. I learned the various classes of demons and evil gods that exist, and of the old legends concerning the Ancient Ones.
+     I was thus able to arm myself against the dread Maskim, who lie in wait about the boundaries of the world, ready to trap the unwary and devour the sacrifices set out at night and in deserted places; against the she-devil LAMMASHTA, who is called Sword that Splits the Skull, the sight of whom causes horror and dismay, and (some say) death of a most uncommon nature.
+     In time I learned of the names and properties of all the demons, devils, fiends and monsters listed herein, in this Book of the Black Earth. I learned of the powers in the astral Gods, and how to summon their aid in times of need. I learned, too, of the frightful beings who dwell beyond the astral spirits, who guard the entrance to the Temple of the Lost, of the Ancient Days the Ancient of the Ancient Ones, whose Name I cannot write here.
+     In my solitary ceremonies in the hills, worshipping with fire and sword, with water and dagger, and with the assistance of strange grass that grows wild in certain parts of the MASSHU, and with which I had unwittingly built my fire before the rock, that grass that gives the mind great power to travel tremendous distances into the heavens, as also into the hells, I received the formulae for the amulets and talismans which follow, which provide the Priest with safe passage among the spheres wherein he may travel in search of the Wisdom.
+     But now, after One Thousand-and-One moons of the journey, the Maskim nip at my heels, the Rabishu pull at my hair, Lammashta opens her dread jaws, AZAG-THOTH gloats blindly at his throne, KUTULU raises his head and stares up through the Veils of sunkun Varloorni, up through the Abyss, and fixes his stare upon me; wherefore I must with haste write this Book lest my end come sooner than I had prepared. For indeed, it appears as though I have failed in some regard as to the order of the rites, or to the formulae, or to the sacrifices, for now it appears as if the entire host of ERESSKIGAL lies waiting, dreaming, drooling for my departure.
+     I pray the gods that I am saved (which he is not, for "gods" cannot save ones soul, only GOD) and not perish as did the Priest, ABDUL BEN-MARTU, in Jerusalem (the gods remember and have mercy upon him!). My fate is no longer writ in the stars, for I have broken the Chaldean Covenant by seeking power over the Zonei. I have set foot on the moon, and the moon no longer has power over me. The lines of my life have been obliterated by my wanderings in the Waste, over the letters writ in the heavens by the gods. And even now I can hear the wolves howling in the mountains as they did that fateful night, and they are calling my name, and the names of the Others. I fear for my flesh, but I fear for my spirit more.
+     Remember, always, in every empty moment, to call upon the gods not to forget thee, for they are forgetful and very far away. Light thy fires high in the hills, and on the tops of temples and pyramids, that they may see and remember.
+     Remember, always, to copy each of the formulae as I have put it down and not to change it by one line or dot, not so much as hair's breadth, lest it be rendered valueless, or worse: a broken line provides means of entrance for those Outside, for a broken star is the Gate of GANZIR, the Gate of Death, the Gate of the Shadows and the Shells. Recite the incantations as they are written here, in the manner thus prescribed. Prepare the rituals without erring, and in the proper places and times render the sacrifices.
+     May the gods ever be merciful unto thee!
+     May thou escape the jaws of the MASKIM, and vanquish the power to the Ancient Ones!
+     AND THE GODS GRANT THEE DEATH BEFORE THE ANCIENT ONES RULE THE EARTH ONCE MORE!
+     KAKAMMU! SELAH!
+     The Old Ones were, the Old Ones are and the Old Ones shall be. From the dark stars They came ere man was born, unseen and loathsome They descended to primal earth. Beneath the oceans They brooded while ages past, till seas gave up the land, whereupon They swarmed forth in Their multitudes and darkness ruled the Earth.
+     At the frozen Poles They raised mighty cities, and upon high places the temples of Those whome nature owns not and the Gods have cursed.
+     And the spawn of the Old Ones covered the Earth, and Their children endureth throughout the ages. Ye shantaks of Leng are the work of Their hands, the Ghasts who dwelleth in Zin's primordial vaults know Them as their Lords.
+     They have fathered the Na-Hag and the Gaunts that ride the Night; Great Cthulhu is Their brother, the shaggoths Their slaves. The Dholes do homage unto Them in the nighted vale of Pnoth and Gugs sing Their praises beneath the peaks of ancient Throk.
+     They have walked amidst the stars and They have walked the Earth. The City of Irem in the great desert has known Them; Leng in the Cold Waste has seen Their passing, the timeless citadel upon the cloud-vieled heights of unknown Kadath beareth Their mark.
+     Wantonly the Old Ones trod the ways of darkness and Their blasphemies were great upon the Earth; all creation bowed beneath Their might and knew Them for Their wickedness.
+     And the Elder Lords opened Their eyes and beheld the abominations of Those that ravaged the Earth. In Their wrath They set their hand against the Old Ones, staying Them in the midst of Their iniquity and casting Them forth from the Earth to the Void beyond the planes where chaos reigns and form abideth not. And the Elder Lords set Their seal upon the Gateway and the power of the Old Ones prevailest not against its might.
+     Loathsome Cthulhu rose then from the deeps and raged with exceeding great fury against the Earth Guardians. And They bound his venomous claws with potent spells and sealed him up within the City of R'lyeh wherein beneath the waves he shall sleep death's dream until the end of the Aeon.
+     Beyond the Gate dwell now the Old Ones; not in the spaces known unto men but in the angles betwixt them. Outside Earth's plane They linger and ever awaite the time of Their return; for the Earth has known Them and shall know Them in time yet to come.
+     And the Old Ones hold foul and formless Azathoth for Their Master abd Abide with Him in the black cavern at the centre of all infinity, where he gnaws ravenously in ultimate chaos amid the mad beating of hidden drums, the tuneless piping of hideous flutes and the ceaseless bellowing of blind idiot gods that shamble and gesture aimlessly for ever.
+     The soul of Azathoth dwelleth in Yog-sothoth and He shall beckon unto the Old Ones when the stars mark the time of Their coming; for Yog-sothoth is the Gate through which Those of the Void will re-enter. Yog-sothoth knowest the mazes of of time, for all time is one unto Him. He knowest where the Old Ones came forth in time along long past and where They shall come forth again when the cycle returneth.
+     After day cometh night; man's day shall pass, and They shall rule where They once ruled. As foulness you shall know them and Their accursedness shall stain the Earth.
+     Whenever thou would'st call forth Those from Outside, thou must mark well the seasons and times in which the spheres do intersect and the influences flow from the Void
+     Thou must observe the cycle of the Moon, the movements of the planets, the Sun's course through the Zodiac and the rising of the constellations.
+     Ye Ultimate Rites shall be performed only in the seasons proper to them, these be: at Candlemas (on the second day of the second month), at Beltane (on the Eve of May), at Lammas (on the first day of the eighth month), at Roodmas (on the fourteenth day of the ninth month), and at Hallowmas (on November Eve).
+     Call out to dread Azathoth when the Sun is in the sign of the Ram, the Lion, or the Archer; the Moon decreasing and Mars and Saturn conjoin.
+     Mighty Yog-sothoth shall rise to ye incantations when Sol has entered the fiery house of Leo and the hour of Lammas be upon ye.
+     Evoke ye terrible Hastur on Candlemas Night, when Sol is in Aquarius and Mercury in trine.
+     Supplicate Great Cthulhu only at Hallowmas Eve when the Sun abides within the House of the Scorpion and Orion riseth. When All Hallows falls within the cycle of the new Moon the power shall be the strongest.
+     Conjure Shub-Niggurath when the Beltane fires glow upon the hills and the Sun is in the Second House, repeating the Rites of Roodmas when ye Black One appeareth.
+     Who seeketh Northwards beyond the twilight land of Inquanok shall find amidst the frozen waste the dark and mighty plateau of thrice-forbidden Leng.
+     Know ye time-shunned Leng by the ever-burning evil-fires and ye foul screeching of the scaly Shantak birds which ride the upper air; by the howling of ye Na-hag who brood in nighted caverns and haunt men's dreams with strange madness, and by the grey stone temple beneath the Night Gaunts lair, wherein is he who wears the Yellow Mask and dwelleth all alone.
+     But beware O Man, beware, of Those who tread in Darkness the ramparts of Kadath, for he that beholds Their mitred-heads shall know the claws of doom.
+     Of Kadath Ye Unknown
+     What man knoweth Kadath?
+     For who shall know of that which ever abides in strange-time, twix yesterday, today and the morrow.
+     Unknown amidst ye Cold Waste lieth the mountain of Kadath where upon the hidden summit an Onyx Castle stands. dark clouds shroud the mighty peak that gleams 'neath ancient stars where silent brood the titan towers and rear forbidden walls.
+     Curse-runes guard the nighted gate carved by forgotten hands, and woe to he that dare pass within those dreadful doors.
+     Earth's Gods revel where Others once walked in mystic timeless halls, which some have glimpst in sleeps dim vault through strange and sightless eyes.
+  ''')
+
+# assorted quotes
+quotes = (
+  '''"Atheists never progress." - Herod, IRCer
+     "The workers have nothing to lose but their chains." - Karl Marx 
+     "Don't get got." - Anonymous
+     "Those people who think they know everything are a great annoyance to those of us who do." - Isaac Asimov 
+     "Computers are useless. They can only give you answers." - Pablo Picasso 
+     "They don't think it be like it is, but it do." - Oscar Gamble 
+     "The mind is not a vessel to be filled but a fire to be kindled." - Plutarch 
+     "What is missed out is always the best, what is lost is always the most precious." - Anonymous
+     "Do what thou wilt shall be the whole of the law." - Crowley 
+     "Man is the lowest-cost, 150-pound, nonlinear, all-purpose computer system which can be mass-produced by unskilled labor." - NASA, 1965 
+     "It is no measure of health to be well adjusted to a profoundly sick society." - Jiddu Krishnamurti 
+     "Empty your cup so that it may be filled; become devoid to gain totality." - Bruce Lee 
+     "Don't boast of tomorrow, for you know not what a day will bring." - Jewish Proverb 
+     "Now I am quietly waiting for the catastrophe of my personality to seem beautiful again, and interesting, and modern." - Meditations in an Emergency 
+     "Only those who will risk going too far can possibly find out how far one can go." - T. S. Eliot 
+     "What power is it that supports our battle yet starves our victory?" - Commander Kang 
+     "I am committed to whatever the hell it is that you people do around here." - Master Shake 
+     "I have no special talent. I am only passionately curious."  - Albert Einstein 
+     "Do not go where the path may lead, go instead where there is no path and leave a trail." - Ralph Waldo Emerson 
+     "Whenever you find yourself on the side of the majority, it is time to pause and reflect." -Mark Twain 
+     "Wanting to be someone else is a waste of who you are." - Kurt Cobain 
+     "Remember to always be yourself. Unless you suck." - Joss Whedon 
+     "Kindness is more important than wisdom, and the recognition of this is the beginning of wisdom." - Theodore Isaac Rubin 
+     "Always pass on what you have learned." - Yoda 
+     "The universe is monstrously indifferent to the presence of man." - Werner Herzog 
+     "You knock down doors! YOU KICK DOWN WALLS! And ANYBODY, who tells you can't... you take your fears, your insecurities, your worries, roll 'em all up into a ball, TURN THOSE SONS OF BITCHES SIDEWAYS, AND STICK 'EM STRAIGHT UP THEIR CANDY ASSES!" - The Rock 
+     "I'm not saying I'm gonna change the world, but I guarantee that I will spark the brain that will change the world."  - Tupac Shakur 
+     "If you want to find the secrets of the universe, think in terms of energy, frequency and vibration." - Nikola Tesla 
+     "If you always put limit on everything you do, physical or anything else. It will spread into your work and into your life. There are no limits. There are only plateaus, and you must not stay there, you must go beyond them." - Bruce lee 
+     "We are not human beings having a spiritual experience. We are spiritual beings having a human experience." - Pierre Teilhard de Chardin 
+     "You can't have everything. Where would you put it?" - Stephen Wright 
+     "A mind is like a parachute.  It doesn't work if it isn't open" - Frank Zappa 
+     "Nothing haunts us like the things we don't say." - Mitch Albom 
+     "Learn how to see.  Realize that everything connects to everything else" - Leonardo da Vinci 
+     "When you hold on to your history, you do it at the expense of your destiny" - Bishop T.D. Jakes 
+     "Maybe it's not about the happy ending, maybe it's about the story." 
+     "A person who truly loves you is someone who sees the pain in your eyes, while everyone else believes in the smile on your face." 
+     "Falling down is how we grow. Staying down is how we die." - Brian Vaszily 
+     "If "Plan A" didn't work, the alphabet has 25 more letters! Stay cool."
+     "The best way to predict the future is to create it." - Dr. Forrest C. Shaklee 
+     "A man is but the product of his thoughts.  What he thinks, he becomes." - Mahatma Gandhi 
+     "We must all face the choice between what is right and what is easy." - Albus Dumbledore 
+     "Albeit the jealous temper of mankind, ever more disposed to censure than to praise the work of others, has constantly made the pursuit of new methods and systems no less perilous than the search after unknown lands and seas;" - Niccolo  Machiavelli. 
+     "Nothing is more precious for our people than peace, but it is not something that can be achieved if we simply crave and beg for it." - Kim Jong-Un 
+     "Work sets you free"
+     "You don't have a soul. You are a soul. You have a body." - C.S. Lewis 
+     "Can I trust you? Uh huh then I love you. If not, straight up and down fuck you" - shyheim 
+     "Just as a candle cannot burn without fire, men cannot live without a spiritual life." - Buddha
+     "To live is the rarest thing in the world. Most people exist, that is all." - Oscar Wilde 
+     "The only true wisdom is in knowing you know nothing." - Socrates 
+     "The beginning is the most important part of the work." - Plato 
+     "The greater danger for most of us lies not in setting our aim too high and falling short; but in setting our aim too low, and achieving our mark." - Michelangelo 
+     "Everything that is possible demands to exist." - Gottfried Wilhelm Leibniz 
+     "People need loving the most when they deserve it the least." - John Harrigan 
+     "Reality leaves a lot to the imagination." - John Lennon 
+     "Life is what happens to you while you're busy making other plans." - John Lennon 
+     "Absence of evidence is not evidence of absence." - Carl Sagan 
+     "Imagination will often carry us to worlds that never were. But without it we go nowhere." - Carl Sagan 
+     "Magic is real" - Kav718
+     "My only regret is that I have but one life to give for my chatroom." - SudokuVegetable
+     "Has anyone really been far as decided to use even go want to do look more like? You've got to be kidding me. I've been further even more decided to use even go need to do look more as anyone can. Can you really be far even as decided half as much to use go wish for that?" - Anon
+     "Beauty is truth, truth beauty - that is all ye know on earth, and all ye need to know." - John Keats
+     "Let the beauty of what you love be what you do." - Rumi
+     "Remember all ye that existence is pure joy; that all the sorrows are but as shadows; they pass & are done; but there is that which remains." - Hadit
+     "Every tree and plant in the meadow seemed to be dancing, those which average eyes would see as fixed and still." - Rumi
+     "Get your shit together. Get it all together, and put it in a backpack. All your shit. So it's together. And if you gotta take it somewhere, take it somewhere, y'know? Take it to the shit store and sell it. Or put it in the shit museum. I don't care what you do; you just gotta get it together. Get your shit together." - Morty
+     "Feed a man a fish and he'll eat for a day. Feed a fish a man and he'll eat for like two and a half months." - Rainn Wilson
+  ''')
diff --git a/div.py b/div.py
new file mode 100755 (executable)
index 0000000..24ceb48
--- /dev/null
+++ b/div.py
@@ -0,0 +1,494 @@
+# load modules
+import chat, db, random, re, sys, time
+
+# help menu of command triggers
+help_eventual = [
+  ('Say my name with "rw" for Rider-Waite deck instead of Thoth, "rw+" for ' 
+   'added meanings, "rwr" for added reversals, "rwr+" for both, "haindl" for ' 
+   'Haindl deck, "petit" for Petit Lenormand, "morg" for Morgan\'s Tarot, ' 
+   '"arca" for Arcana Arcanorum, "card" for a playing card, "rune" for a ' 
+   'rune, "armanen" for an Armanen rune, "gem" for a gemstone, or "yee" for a ' 
+   'Yee. Adding "spread" gets you 3!'), 
+  ('Say my name with "8ball" for Magic 8-Ball, "fortune" for a fortune, ' 
+   '"misfortune" for a Misfortune Cookie, "pendulum" for pendulum yes/no, ' 
+   '"y/n" for simple yes/no/maybe/probably, "coin" for a coin flip, "when" ' 
+   'for a time frame, "quote" for a quote, or "focus" for what to focus your ' 
+   'time and energy on!'), 
+  ('Shortcuts: .help, .thoth, .rw, .rw+, .rwr, .rwr+, .haindl, .petit, .morg, ' 
+   '.arca, .card, .rune, .arm, .gem, .yee, .spread, .spryeed, .rock, .paper, ' 
+   '.scissors, .8b, .fortune, .misfortune, .conch, .pen, .y/n, .flip, .toss, ' 
+   '.coin, .heads, .tails, .when, .foc, .quote, .random, etc. can be used ' 
+   'without even having to say my name! You can PM (Private Message) me too!')]
+
+help = [
+  ('Say my name with "rw" for Rider-Waite deck instead of Thoth, "rwr" for ' 
+   'added reversals, "haindl" for ' 
+   'Haindl deck, "petit" for Petit Lenormand, "morg" for Morgan\'s Tarot, ' 
+   '"arca" for Arcana Arcanorum, "card" for a playing card, "rune" for a ' 
+   'rune, "armanen" for an Armanen rune, or "gem" for a gemstone. ' 
+   'Adding "spread" gets you 3 (or a number you specify, 1-7)!'), 
+  ('Say my name with "8ball" for Magic 8-ball, "fortune" for a fortune, ' 
+   '"misfortune" for a Misfortune Cookie, "pendulum" for pendulum yes/no, ' 
+   '"coin" for a coin flip, ' 
+   '"quote" for a quote, or "focus" for what to focus your ' 
+   'time and energy on!'), 
+  ("Shortcuts: 'help, 'thoth, 'rw, 'rwr, 'haindl, 'petit, 'morg, " 
+   "'arca, 'card, 'rune, 'arm, 'gem, 'spread, 'rock, 'paper, " 
+   "'scissors, '8b, 'fortune, 'misfortune, 'conch, 'pen, 'flip, 'toss, " 
+   "'coin, 'heads, 'tails, 'foc, 'quote, 'random, etc. can be used " 
+   "without even having to say my name! You can PM (Private Message) me too!")]
+
+# divination bot for internet relay chat
+class bot(chat.bot):
+
+  def __init__(self, irc):
+    chat.bot.__init__(self, irc.encoding)
+    self.regex = re.compile(
+      r'''((?<=spread\s)|(?<=card\s)|(?<=cards\s)|(?<=petit\s)|(?<=lenormand\s)|
+                         (?<=8b\s)|(?<=8ball\s)|(?<=8\-b\s)|(?<=8\-ball\s)|
+                         (?<=arca\s)|(?<=arm\s)|(?<=armanen\s)|(?<=coin\s)|
+                         (?<=coins\s)|(?<=conch\s)|(?<=flip\s)|(?<=flips\s)|
+                         (?<=foc\s)|(?<=focus\s)|(?<=fortune\s)|(?<=fortunes\s)|
+                         (?<=gem\s)|(?<=gems\s)|(?<=haindl\s)|(?<=heads\s)|
+                         (?<=morg\s)|(?<=pen\s)|(?<=pendulum\s)|(?<=rand\s)|
+                         (?<=rando\s)|(?<=random\s)|(?<=rune\s)|(?<=runes\s)|
+                         (?<=rw\s)|(?<=rw\+\s)|(?<=rwr\s)|(?<=rwr\+\s)|
+                         (?<=tails\s)|(?<=thoth\s))
+          (?<!\.)\b\d+\b(?!\.\d)''', re.X)
+    # connect for chatting
+    self.network.connect((irc.host, irc.port))
+    self.send('NICK {}\r\n'.format(irc.nickname))
+    self.send('USER {} {} {} :{}\r\n'.format(irc.identity, irc.host, 
+                                             irc.standard, irc.realname))
+    time.sleep(10)
+    if irc.password:
+      if irc.host == 'irc.dal.net' or irc.host == 'irc.divbot.net':
+        self.message('NickServ@services.dal.net', 
+                     'IDENTIFY {}\r\n'.format(irc.password))
+      else:
+        self.message('NickServ', 'IDENTIFY {}\r\n'.format(irc.password))
+    time.sleep(10)
+    for each in irc.channels:
+      self.send('JOIN {}\r\n'.format(each))
+      self.message(each, irc.arriving)
+    # run main loop
+    while True:
+      try:
+        target = self.translate(self.receive())
+        # respond to joining
+        if target['command'] == 'JOIN':
+          sender = target['nick']
+          channel = target['params'][0]
+          if sender.lower() != irc.nickname.lower():
+            flag = 1
+            for each in irc.master:
+              if sender.lower() == each.lower():
+                self.message(channel, 
+                             '\x02{}: {}\x0f'.format(sender, irc.herald))
+                flag = 0
+            for each in irc.lady:
+              if sender.lower() == each.lower():
+                self.message(channel, 
+                             '\x02{}: {}\x0f'.format(sender, irc.special))
+                flag = 0
+            if flag and irc.welcome:
+              for each in irc.bots:
+                if sender.lower().startswith(each.lower()):
+                  flag = 0
+              if flag:
+                self.message(channel, '{}: {}'.format(sender, irc.welcome))
+        # respond to messaging
+        elif target['command'] == 'PRIVMSG':
+          output = ''
+          sender = target['nick']
+          channel = target['params'][0]
+          self.query = target['params'][1].lower()
+          flag = 1
+          for each in irc.bots:
+            if sender.lower().startswith(each.lower()):
+              flag = 0
+          if not output and flag:
+            if channel[0] == '#':
+              self.maxitems = irc.maxitems
+            else:
+              self.maxitems = irc.maxinpm
+            provoked = (irc.nickname.lower() in self.query or channel[0] != '#' 
+                      # or '.spread' in self.query or '!spread' in self.query)
+                        or "'spread" in self.query or '!spread' in self.query)
+            for words in self.query.split():
+              if provoked and self.query.endswith(irc.codeword.lower()):
+                content = target['params'][1].rsplit(' ', 1)[0]
+                if self.query.startswith('action '):
+                  action = content.split(' ', 2)
+                  content = '\x01ACTION ' + action[2] + '\x01'
+                  self.message(action[1], content)
+                elif self.query.startswith('join '):
+                  self.send(content + '\r\n')
+                  self.message(content.split(' ', 2)[1], irc.arriving)
+                else:
+                  self.send(content + '\r\n')
+                break
+              if (provoked and 'help' == words) or (
+                # '.help' in words or '!help' in words):
+                  "'help" in words or '!help' in words):
+                time.sleep(1.5)
+                output = help
+                break
+              elif (provoked and words in ('coin', 'coinflip', 'coins', 'heads',
+                    'tails', 'flip', 'toss', 'coinspread', 'flipspread')) or (
+                  # '.toss' in words or '.coin' in words or '.tails' in words or
+                    "'toss" in words or "'coin" in words or "'tails" in words or
+                  # '.heads' in words or '.flip' in words or '.coin' in words or
+                    "'heads" in words or "'flip" in words or "'coin" in words or
+                    '!flip' in words or '!toss' in words or '!heads' in words or
+                    '!tails' in words or '!toss' in words):
+                output = self.toss(db.coin)
+                break
+              elif (provoked and words in ('haindl', 'haindlspread')) or (
+                  # '.haindl' in words or '!haindl' in words):
+                    "'haindl" in words or '!haindl' in words):
+                output = self.reverse(db.haindl)
+                break
+            # elif (provoked and 'rwr+' == words) or (
+              elif (provoked and 'rwr' == words) or (
+                  # '.rwr+' in words or '!rwr+' in words):
+                    "'rwr" in words or '!rwr' in words):
+                output = self.reverse(db.rw_plus)
+                break
+            # elif (provoked and 'rw+' == words) or (
+              elif (provoked and 'rw' == words) or (
+                  # '.rw+' in words or '!rw+' in words):
+                    "'rw" in words or '!rw' in words):
+                output = self.select(db.rw_plus)
+                break
+              elif (provoked and words in ('arca', 'arcaspread')) or (
+                  # '.arca' in words or '!arca' in words):
+                    "'arca" in words or '!arca' in words):
+                output = self.stack(db.arcana_arcanorum)
+                break
+              elif (provoked and words in ('gem', 'gemspread')) or (
+                  # '.gem' in words or '!gem' in words):
+                    "'gem" in words or '!gem' in words):
+                output = self.stack(db.gems)
+                break
+              elif (provoked and words in ('petit', 'lenormand')) or (
+                  # '.petit' in words or '!petit' in words or (
+                    "'petit" in words or '!petit' in words or (
+                  # '.lenormand' in words or '!lenormand' in words)):
+                    "'lenormand" in words or '!lenormand' in words)):
+                output = self.stack(db.lenormand)
+                break
+              elif (provoked and 'morg' in words) or (
+                  # '.morg' in words or '!morg' in words):
+                    "'morg" in words or '!morg' in words):
+                output = self.stack(db.morgan)
+                break
+            # elif (provoked and 'thoth' in words or ('.thoth' in words) or (
+              elif (provoked and 'thoth' in words or ("'thoth" in words) or (
+                    '!thoth' in words)):
+                output = self.draw(db.thoth)
+                break
+              elif (provoked and words in ('card', 'cards', 'cardspread')) or (
+                  # '.card' in words or '!card' in words):
+                    "'card" in words or '!card' in words):
+                output = self.draw(db.ordinary)
+                break
+              elif (provoked and words in ('random', 'rand')) or (
+                  # '.rand' in words or '!rand' in words):
+                    "'rand" in words or '!rand' in words):
+                output = self.random()
+                break
+              elif (provoked and words in ('focus', 'foc')) or (
+                  # '.foc' in words or '!foc' in words):
+                    "'foc" in words or "!foc" in words):
+                output = ('Focus your time/energy on: '
+                          '"{}"').format(self.draw(db.focus))
+                break
+              # sort in order of priority
+              elif (provoked and words == 'armanen') or (
+                    "'arm" in words or '!arm' in words):
+                output = self.draw(db.armanen)
+                break
+              elif (provoked and words in ('rune', 'runes', 'runespread')) or (
+                    "'rune" in words or '!rune' in words):
+                output = self.draw(db.runes)
+                break
+              elif (provoked and ('8b' in words or '8-b' in words)) or (
+                    "'8b" in words or '!8b' in words or 
+                    "'8-b" in words or '!8-b' in words):
+                output = self.draw(db.eight_ball)
+                break
+              elif (provoked and 'conch' in words) or (
+                    "'conch" in words or '!conch' in words):
+                output = self.draw(db.conch)
+                break
+              elif (provoked and 'misfortune' in words) or (
+                    "'misfortune" in words or '!misfortune' in words):
+                output = self.stack(db.misfortunes)
+                break
+              elif (provoked and 'fortune' in words) or (
+                    "'fortune" in words or '!fortune' in words):
+                output = self.stack(db.fortunes)
+                break
+              elif (provoked and 'pendulum' in words) or (
+                    "'pen" in words or '!pen' in words):
+                output = self.draw(db.pendulum)
+                break
+              elif (provoked and words in ('quote', 'quotespread')) or (
+                    "'quote" in words or '!quote' in words):
+                output = self.stack(db.quotes)
+                break
+              elif (provoked and words in ('rock', 'paper', 'scissors')) or (
+                    "'rock" in words or "'paper" in words or 
+                    "'scissors" in words):
+                output = self.draw(db.rps)
+                break
+              elif (provoked and words == 'moon' and 'spread' not in words) or (
+                    "'moon" in words or '!moon' in words):
+                output = '(_!_)'
+                break
+          # # elif ('.chi' in words) or ('!chi' in words):
+            # elif ('.psi' in words) or ('!psi' in words):
+              elif ("'psi" in words) or ('!psi' in words):
+                output = self.draw(db.thoth)
+                break
+              elif not output and provoked:
+                output = self.draw(db.thoth)
+          if output:
+            if channel[0] != '#':
+              channel = sender
+            for entry in irc.punished:
+              for alias in entry[0]:
+                if sender.lower() == alias.lower():
+                  output = entry[1]
+            if type(output) == str:
+              self.message(channel, '{}: {}'.format(sender, output))
+            else:
+              for each in output:
+                self.message(channel, '{}: {}'.format(sender, each))
+        print('\r')
+      except KeyboardInterrupt:
+        print('\r')
+        self.send('QUIT {}\r\n'.format(irc.quitting))
+        break
+
+  def randomize(self):
+    return random.SystemRandom(time.time())
+
+  def zen(self):
+    self.count = 0
+    while True:
+      rng = self.randomize()
+      sort = self.randomize()
+      rng.shuffle(db.ordinary)
+      c1 = sort.choice(db.ordinary)
+      rng.shuffle(db.ordinary)
+      c2 = sort.choice(db.ordinary)
+      rng.shuffle(db.ordinary)
+      c3 = sort.choice(db.ordinary)
+      self.count += 1
+      if (('Diamonds' in c1 and 'Diamonds' in c2 and 'Diamonds' in c3) or 
+          ('Hearts' in c1 and 'Hearts' in c2 and 'Hearts' in c3)):
+        break
+
+  def flip(self, number, items):
+    self.zen()
+    rng = self.randomize()
+    rng.shuffle(items)
+    sort = self.randomize()
+    choice = sort.choice(items)
+    for i in range(number - 1):
+      choice += ' / ' + sort.choice(items)
+    return choice
+
+  def join(self, number, items):
+    self.zen()
+    rng = self.randomize()
+    rng.shuffle(items)
+    sort = self.randomize()
+    return ' / '.join(sort.sample(items, number))
+
+  def vertical(self, number, items):
+    self.zen()
+    rng = self.randomize()
+    rng.shuffle(items)
+    sort = self.randomize()
+    return sort.sample(items, number)
+
+  def reversals(self, number, items):
+    self.zen()
+    oriented = [''] * number
+    rng = self.randomize()
+    rng.shuffle(items)
+    sort = self.randomize()
+    spread = sort.sample(items, number)
+    rotate = self.randomize()
+    for i in range(number):
+      if rotate.random() < .5:
+        oriented[i] = spread[i][1]
+      else:
+        oriented[i] = spread[i][0]
+    return oriented
+
+  def selection(self, number, items):
+    self.zen()
+    oriented = [''] * number
+    rng = self.randomize()
+    rng.shuffle(items)
+    sort = self.randomize()
+    spread = sort.sample(items, number)
+    for i in range(number):
+      oriented[i] = spread[i][0]
+    return oriented
+
+  def toss(self, items):
+    output = ''
+    try:
+      number = int(re.search(self.regex, self.query).group())
+      if number > self.maxitems:
+        number = self.maxitems
+      output = self.flip(number, items)
+      if number > 0:
+        time.sleep(0.5)
+    except:
+      for words in self.query.split():
+      # if (words in ('coins', '.coins', '!coins', 
+        if (words in ('coins', "'coins", '!coins', 
+                    # 'flips', '.flips', '!flips') or 
+                      'flips', "'flips", '!flips') or 
+            words.endswith('spread')):
+          output = self.flip(3, items)
+          time.sleep(0.5)
+    if not output:
+      output = self.flip(1, items)
+    if '*' in self.query:
+      output = '{} (Tests: {})'.format(output, self.count)
+    return output
+
+  def draw(self, items):
+    output = ''
+    try:
+      number = int(re.search(self.regex, self.query).group())
+      if number > self.maxitems:
+        number = self.maxitems
+      output = self.join(number, items)
+      if number > 0:
+        time.sleep(0.5)
+    except:
+      for words in self.query.split():
+      # if (words in ('cards', '.cards', '!cards', 
+        if (words in ('cards', "'cards", '!cards', 
+                    # 'runes', '.runes', '!runes') or 
+                      'runes', "'runes", '!runes') or 
+            words.endswith('spread')):
+          output = self.join(3, items)
+          time.sleep(0.5)
+    if not output:
+      output = self.join(1, items)
+    if '*' in self.query:
+      output = '{} (Tests: {})'.format(output, self.count)
+    return output
+
+  def stack(self, items):
+    output = ''
+    try:
+      number = int(re.search(self.regex, self.query).group())
+      if number > self.maxitems:
+        number = self.maxitems
+      output = self.vertical(number, items)
+      if number > 0:
+        time.sleep(0.5 * number)
+    except:
+      for words in self.query.split():
+        if words.endswith('spread'):
+          output = self.vertical(3, items)
+          time.sleep(1.5)
+    if not output:
+      output = self.vertical(1, items)
+    if '*' in self.query:
+      if type(output) == str:
+        output = '{} (Tests: {})'.format(output, self.count)
+      else:
+        output[number - 1] = '{} (Tests: {})'.format(output[number - 1], 
+                                                     self.count)
+    return output
+
+  def reverse(self, items):
+    output = ''
+    try:
+      number = int(re.search(self.regex, self.query).group())
+      if number > self.maxitems:
+        number = self.maxitems
+      output = self.reversals(number, items)
+      if number > 0:
+        time.sleep(0.5 * number)
+    except:
+      for words in self.query.split():
+        if words.endswith('spread'):
+          output = self.reversals(3, items)
+          time.sleep(1.5)
+    if not output:
+      output = self.reversals(1, items)
+    if '*' in self.query:
+      if type(output) == str:
+        output = '{} (Tests: {})'.format(output, self.count)
+      else:
+        output[number - 1] = '{} (Tests: {})'.format(output[number - 1], 
+                                                     self.count)
+    return output
+
+  def select(self, items):
+    output = ''
+    try:
+      number = int(re.search(self.regex, self.query).group())
+      if number > self.maxitems:
+        number = self.maxitems
+      output = self.selection(number, items)
+      if number > 0:
+        time.sleep(0.5 * number)
+    except:
+      for words in self.query.split():
+        if words.endswith('spread'):
+          output = self.selection(3, items)
+          time.sleep(1.5)
+    if not output:
+      output = self.selection(1, items)
+    if '*' in self.query:
+      if type(output) == str:
+        output = '{} (Tests: {})'.format(output, self.count)
+      else:
+        output[number] = '{} (Tests: {})'.format(output, self.count)
+    return output
+
+  def random(self):
+    self.zen()
+    rng = self.randomize()
+    choice = rng.randint(1, 14)
+    if choice == 1:
+      return self.toss(db.coin)
+    elif choice == 2:
+      return self.reverse(db.haindl)
+    elif choice == 3:
+      return self.reverse(db.rw_plus)
+    elif choice == 4:
+      return self.select(db.rw_plus)
+    elif choice == 5:
+      return self.stack(db.arcana_arcanorum)
+    elif choice == 6:
+      return self.stack(db.gems)
+    elif choice == 7:
+      return self.stack(db.lenormand)
+    elif choice == 8:
+      return self.stack(db.morgan)
+    elif choice == 9:
+      return self.draw(db.ordinary)
+    elif choice == 10:
+      return self.draw(db.focus)
+    elif choice == 11:
+      return self.draw(db.armanen)
+    elif choice == 12:
+      return self.draw(db.pendulum)
+    elif choice == 13:
+      return self.draw(db.runes)
+    elif choice == 14:
+      return self.draw(db.eight_ball)
diff --git a/my_divbot.py b/my_divbot.py
new file mode 100755 (executable)
index 0000000..1088937
--- /dev/null
@@ -0,0 +1,37 @@
+#!/usr/local/bin/python3\r
+\r
+# load module for divination type of chat bot\r
+import div\r
+\r
+# settings for divination bot\r
+class settings(object):\r
+\r
+  host     =  'irc.divbot.net'\r
+  port     =   6667\r
+  channels = ['#divbot', '#divbot.net']\r
+  nickname =  'my_divbot'\r
+  password =  ''\r
+  identity =  'my_divbot'\r
+  realname =  'my_divbot'\r
+  standard =  'my_divbot'\r
+  encoding =  'iso-8859-1'\r
+  welcome  =  ''\r
+  bots     = ['divbot', 'Chirobot', 'Psirobot', 'Phirobot', 'Skeletony' \r
+              'Ophziel', 'Succubot', 'Deltabot', 'SoduvVengahaw', 'Esodu']\r
+  herald   =  'Greetings, Exalted Master.'\r
+  master   = ['Asterite', 'Chironymous', 'Chiron', 'Chiromobile', 'divbotdude']\r
+  special  =  'Hey, lady. ;)'\r
+  lady     = ['SpecialLadyFriend', 'SpecialLadyFriendAlias']\r
+  arriving = ('Hello! Say my name for a Thoth card. Say my name ' \r
+              'followed by the word "help" for commands.')\r
+  punished = [\r
+               [['GDfriendless', 'GDenemy'], 'CROWLEY CROWLEY CROWLEY!'], \r
+               [['OtherJerk'], 'This angry message is for YOU, jerk! >:o']\r
+             ]\r
+  quitting =  'Bye Felicia.'\r
+  codeword =  'one2three4five'\r
+  maxitems =   7\r
+  maxinpm  =   36\r
+\r
+# run divination bot with settings\r
+div.bot(settings)\r