import irc.bot
import irc.strings
import google.generativeai as genai

# Konfigurasi Gemini
GOOGLE_API_KEY = "MASUKKAN_API_KEY_ANDA_DISINI"
genai.configure(api_key=GOOGLE_API_KEY)
gemini_model = genai.GenerativeModel('gemini-1.5-flash')

# Konfigurasi IRC
IRC_SERVER = "irc6.dal.net"  # Ganti dengan server IRC Anda
IRC_PORT = 6667
CHANNEL = "#republik"      # Ganti dengan channel Anda
BOT_NICK = "GBot"

class GeminiIrcBot(irc.bot.SingleServerIRCBot):
    def __init__(self, channel, nickname, server, port=6667):
        irc.bot.SingleServerIRCBot.__init__(self, [(server, port)], nickname, nickname)
        self.channel = channel

    def on_nicknameinuse(self, c, e):
        c.nick(c.get_nickname() + "_")

    def on_welcome(self, c, e):
        c.join(self.channel)
        print(f"Bergabung dengan {self.channel}")

    def on_pubmsg(self, c, e):
        # Bot merespons jika namanya disebut (misal: "GeminiBot: halo")
        a = e.arguments[0].split(":", 1)
        if len(a) > 1 and irc.strings.lower(a[0].strip()) == irc.strings.lower(self.connection.get_nickname()):
            prompt = a[1].strip()
            
            # Panggil Gemini API
            try:
                response = gemini_model.generate_content(prompt)
                reply_text = response.text
            except Exception as e:
                reply_text = "Maaf, saya sedang mengalami gangguan."

            # Kirim balasan ke channel
            c.privmsg(self.channel, reply_text)

if __name__ == "__main__":
    bot = GeminiIrcBot(CHANNEL, BOT_NICK, IRC_SERVER, IRC_PORT)
    bot.start()
