예제 #1
0
파일: bminfo.py 프로젝트: m0untainxd/bminfo
    def idsubmit(self):

        try:
            self.mapID = int(self.bmid_ent.get())
            self.mapsetID = int(self.bmsid_ent.get())
        except ValueError:
            messagebox.showerror(
                title="Error",
                message="ValueError: must enter a number. Please try again.")
            return

        load_dotenv()
        self.BMINFO_KEY = os.getenv('BMINFO_KEY')

        global search
        search = Search(self.BMINFO_KEY)

        if self.mapID != 0 and self.mapsetID == 0:
            search.setmapID(self.mapID)
            map_data = search.api_mapID()

            if map_data == []:
                messagebox.showerror(
                    title="Error",
                    message="BeatmapID not found, please try again.")
                return
            else:
                pass

            for data in map_data:
                global beatmap
                beatmap = Beatmap(data["beatmap_id"], data["beatmapset_id"],
                                  data["title"], data["artist"],
                                  data["version"], data["creator"],
                                  float(data["diff_approach"]),
                                  float(data["diff_size"]),
                                  float(data["diff_overall"]),
                                  float(data["diff_drain"]),
                                  float(data["difficultyrating"]),
                                  int(data["hit_length"]), int(data["bpm"]))

            self.mainwindow()

        elif self.mapsetID != 0 and self.mapID == 0:
            search.setmapsetID(self.mapsetID)
            diffs = search.api_mapsetID()

            if diffs == []:
                messagebox.showerror(
                    title="Error",
                    message="BeatmapsetID not found, please try again.")
                return
            else:
                pass

            self.diff_list = sorted(
                diffs, key=operator.itemgetter('difficultyrating'))
            self.diff_names = []
            self.song_title = self.diff_list[0]["title"]
            self.song_artist = self.diff_list[0]["artist"]
            self.song_mapper = self.diff_list[0]["creator"]

            for diff in self.diff_list:
                self.diff_names.append(diff["version"])

            self.diffwindow()

        elif self.mapID != 0 and self.mapsetID != 0:
            msg = messagebox.askyesnocancel(
                title="Message",
                message=
                "Both values entered. BeatmapID will be used. Do you wish to continue?"
            )
            if msg == True:
                search.setmapID(self.mapID)
                map_data = search.api_mapID()

                for data in map_data:
                    beatmap = Beatmap(int(data["beatmap_id"]),
                                      int(data["beatmapset_id"]),
                                      data["title"], data["artist"],
                                      data["version"], data["creator"],
                                      float(data["diff_approach"]),
                                      float(data["diff_size"]),
                                      float(data["diff_overall"]),
                                      float(data["diff_drain"]),
                                      float(data["difficultyrating"]),
                                      int(data["hit_length"]),
                                      int(data["bpm"]))

                self.mainwindow()
            else:
                pass

        else:
            messagebox.showerror(title="Error",
                                 message="No value entered, please try again.")

        return