
import sqlite3

from plugin import *


class Plugin(BasePlugin):
    def on_load(self, reloading):
        self.db = sqlite3.connect('data/notes.db')
        c = self.db.cursor()
        c.execute('''CREATE TABLE IF NOT EXISTS notes
                     (channel text, sender text, recipient text, message text)''')
        self.db.commit()

    def on_unload(self, reloading):
        self.db.close()

    @hook
    def note_trigger(self, msg, args, argstr):
        if not msg.channel:
            return

        data = {'channel': msg.param[0], 'sender': msg.nick}
        data['recipient'], data['message'] = argstr.split(None, 1)

        c = self.db.cursor()
        c.execute('INSERT INTO notes VALUES (:channel, :sender, :recipient, :message)', data)
        self.db.commit()

    @hook
    def privmsg_command(self, msg):
        if not msg.channel:
            return

        c = self.db.cursor()
        criteria = {'channel': msg.param[0], 'recipient': msg.nick}
        c.execute('SELECT sender, message FROM notes WHERE channel=:channel AND recipient=:recipient', criteria)
        rows = c.fetchall()
        if rows:
            for row in rows:
                msg.reply("Note: <%s> %s" % row)
            c.execute('DELETE FROM notes WHERE channel=:channel AND recipient=:recipient', criteria)
            self.db.commit()



import sqlite3

from plugin import *


class Plugin(BasePlugin):
    def on_load(self, reloading):
        self.db = sqlite3.connect('data/notes.db')
        c = self.db.cursor()
        c.execute('''CREATE TABLE IF NOT EXISTS notes
                     (channel text, sender text, recipient text, message text)''')
        self.db.commit()

    def on_unload(self, reloading):
        self.db.close()

    @hook
    def tell_trigger(self, msg, args, argstr):
        if not msg.channel:
            return

        data = {'channel': msg.param[0], 'sender': msg.nick}
        data['recipient'], data['message'] = argstr.split(None, 1)

        c = self.db.cursor()
        c.execute('INSERT INTO notes VALUES (:channel, :sender, :recipient, :message)', data)
        self.db.commit()

        msg.reply("Aye aye!")

    @hook
    def privmsg_command(self, msg):
        if not msg.channel:
            return

        c = self.db.cursor()
        criteria = {'channel': msg.param[0], 'recipient': msg.nick}
        c.execute('SELECT sender, message FROM notes WHERE channel=:channel AND recipient=:recipient', criteria)
        rows = c.fetchall()
        if rows:
            for row in rows:
                msg.reply("Note: <%s> %s" % row)
            c.execute('DELETE FROM notes WHERE channel=:channel AND recipient=:recipient', criteria)
            self.db.commit()


Change note trigger to tell, and make it reply
Change note trigger to tell, and make it reply

  
  import sqlite3
  
  from plugin import *
  
  
  class Plugin(BasePlugin):
      def on_load(self, reloading):
          self.db = sqlite3.connect('data/notes.db')
          c = self.db.cursor()
          c.execute('''CREATE TABLE IF NOT EXISTS notes
                       (channel text, sender text, recipient text, message text)''')
          self.db.commit()
  
      def on_unload(self, reloading):
          self.db.close()
  
      @hook
-     def note_trigger(self, msg, args, argstr):
+     def tell_trigger(self, msg, args, argstr):
          if not msg.channel:
              return
  
          data = {'channel': msg.param[0], 'sender': msg.nick}
          data['recipient'], data['message'] = argstr.split(None, 1)
  
          c = self.db.cursor()
          c.execute('INSERT INTO notes VALUES (:channel, :sender, :recipient, :message)', data)
          self.db.commit()
+ 
+         msg.reply("Aye aye!")
  
      @hook
      def privmsg_command(self, msg):
          if not msg.channel:
              return
  
          c = self.db.cursor()
          criteria = {'channel': msg.param[0], 'recipient': msg.nick}
          c.execute('SELECT sender, message FROM notes WHERE channel=:channel AND recipient=:recipient', criteria)
          rows = c.fetchall()
          if rows:
              for row in rows:
                  msg.reply("Note: <%s> %s" % row)
              c.execute('DELETE FROM notes WHERE channel=:channel AND recipient=:recipient', criteria)
              self.db.commit()
  
  
Change note trigger to tell, and make it reply
## Code Before:

import sqlite3

from plugin import *


class Plugin(BasePlugin):
    def on_load(self, reloading):
        self.db = sqlite3.connect('data/notes.db')
        c = self.db.cursor()
        c.execute('''CREATE TABLE IF NOT EXISTS notes
                     (channel text, sender text, recipient text, message text)''')
        self.db.commit()

    def on_unload(self, reloading):
        self.db.close()

    @hook
    def note_trigger(self, msg, args, argstr):
        if not msg.channel:
            return

        data = {'channel': msg.param[0], 'sender': msg.nick}
        data['recipient'], data['message'] = argstr.split(None, 1)

        c = self.db.cursor()
        c.execute('INSERT INTO notes VALUES (:channel, :sender, :recipient, :message)', data)
        self.db.commit()

    @hook
    def privmsg_command(self, msg):
        if not msg.channel:
            return

        c = self.db.cursor()
        criteria = {'channel': msg.param[0], 'recipient': msg.nick}
        c.execute('SELECT sender, message FROM notes WHERE channel=:channel AND recipient=:recipient', criteria)
        rows = c.fetchall()
        if rows:
            for row in rows:
                msg.reply("Note: <%s> %s" % row)
            c.execute('DELETE FROM notes WHERE channel=:channel AND recipient=:recipient', criteria)
            self.db.commit()


## Instruction:
Change note trigger to tell, and make it reply
## Code After:

import sqlite3

from plugin import *


class Plugin(BasePlugin):
    def on_load(self, reloading):
        self.db = sqlite3.connect('data/notes.db')
        c = self.db.cursor()
        c.execute('''CREATE TABLE IF NOT EXISTS notes
                     (channel text, sender text, recipient text, message text)''')
        self.db.commit()

    def on_unload(self, reloading):
        self.db.close()

    @hook
    def tell_trigger(self, msg, args, argstr):
        if not msg.channel:
            return

        data = {'channel': msg.param[0], 'sender': msg.nick}
        data['recipient'], data['message'] = argstr.split(None, 1)

        c = self.db.cursor()
        c.execute('INSERT INTO notes VALUES (:channel, :sender, :recipient, :message)', data)
        self.db.commit()

        msg.reply("Aye aye!")

    @hook
    def privmsg_command(self, msg):
        if not msg.channel:
            return

        c = self.db.cursor()
        criteria = {'channel': msg.param[0], 'recipient': msg.nick}
        c.execute('SELECT sender, message FROM notes WHERE channel=:channel AND recipient=:recipient', criteria)
        rows = c.fetchall()
        if rows:
            for row in rows:
                msg.reply("Note: <%s> %s" % row)
            c.execute('DELETE FROM notes WHERE channel=:channel AND recipient=:recipient', criteria)
            self.db.commit()

