├── ok-derby-backend ├── typings │ ├── PIL │ │ ├── __main__.pyi │ │ ├── PdfImagePlugin.pyi │ │ ├── METADATA.toml │ │ ├── _version.pyi │ │ ├── JpegPresets.pyi │ │ ├── _tkinter_finder.pyi │ │ ├── ImagePath.pyi │ │ ├── WalImageFile.pyi │ │ ├── __init__.pyi │ │ ├── ExifTags.pyi │ │ ├── PalmImagePlugin.pyi │ │ ├── ImageColor.pyi │ │ ├── SunImagePlugin.pyi │ │ ├── McIdasImagePlugin.pyi │ │ ├── PixarImagePlugin.pyi │ │ ├── CurImagePlugin.pyi │ │ ├── XVThumbImagePlugin.pyi │ │ ├── GdImageFile.pyi │ │ ├── PaletteFile.pyi │ │ ├── GimpPaletteFile.pyi │ │ ├── ImtImagePlugin.pyi │ │ ├── XbmImagePlugin.pyi │ │ ├── BufrStubImagePlugin.pyi │ │ ├── FitsStubImagePlugin.pyi │ │ ├── FliImagePlugin.pyi │ │ ├── GribStubImagePlugin.pyi │ │ ├── Hdf5StubImagePlugin.pyi │ │ ├── MspImagePlugin.pyi │ │ ├── PcxImagePlugin.pyi │ │ ├── PpmImagePlugin.pyi │ │ ├── TgaImagePlugin.pyi │ │ ├── GbrImagePlugin.pyi │ │ ├── ImageStat.pyi │ │ ├── PcdImagePlugin.pyi │ │ ├── BdfFontFile.pyi │ │ ├── XpmImagePlugin.pyi │ │ ├── FpxImagePlugin.pyi │ │ ├── Jpeg2KImagePlugin.pyi │ │ ├── ImageMode.pyi │ │ ├── FtexImagePlugin.pyi │ │ ├── SgiImagePlugin.pyi │ │ ├── MicImagePlugin.pyi │ │ ├── _util.pyi │ │ ├── TarIO.pyi │ │ ├── ImageGrab.pyi │ │ ├── ImageSequence.pyi │ │ ├── DcxImagePlugin.pyi │ │ ├── WebPImagePlugin.pyi │ │ ├── BmpImagePlugin.pyi │ │ ├── _binary.pyi │ │ ├── FontFile.pyi │ │ ├── PsdImagePlugin.pyi │ │ ├── IptcImagePlugin.pyi │ │ ├── ContainerIO.pyi │ │ ├── WmfImagePlugin.pyi │ │ ├── MpegImagePlugin.pyi │ │ ├── MpoImagePlugin.pyi │ │ ├── _imaging.pyi │ │ ├── GimpGradientFile.pyi │ │ ├── ImageTransform.pyi │ │ ├── ImageTk.pyi │ │ ├── PcfFontFile.pyi │ │ ├── GifImagePlugin.pyi │ │ ├── features.pyi │ │ ├── ImImagePlugin.pyi │ │ ├── IcoImagePlugin.pyi │ │ ├── ImageEnhance.pyi │ │ ├── EpsImagePlugin.pyi │ │ └── ImageQt.pyi │ ├── adb_shell │ │ ├── __init__.py │ │ ├── auth │ │ │ └── __init__.py │ │ └── transport │ │ │ └── __init__.py │ ├── cv2 │ │ └── __init__.pyi │ └── adb_shell.pyi ├── auto_derby │ ├── web │ │ ├── .prettierignore │ │ ├── .eslintignore │ │ ├── .prettierrc.json │ │ ├── postcss.config.js │ │ ├── src │ │ │ ├── types │ │ │ │ └── define.d.ts │ │ │ ├── services │ │ │ │ ├── message.ts │ │ │ │ └── index.ts │ │ │ ├── main.ts │ │ │ ├── utils │ │ │ │ ├── clamp.ts │ │ │ │ ├── compare.ts │ │ │ │ ├── equalArray.ts │ │ │ │ ├── loadImage.ts │ │ │ │ ├── matchSearchKeys.ts │ │ │ │ ├── assertNever.ts │ │ │ │ ├── limitTextLength.ts │ │ │ │ ├── computedWith.ts │ │ │ │ ├── withLoading.ts │ │ │ │ └── addResizeListener.ts │ │ │ ├── assets │ │ │ │ └── checkerboard.svg │ │ │ ├── env.d.ts │ │ │ ├── components │ │ │ │ └── LogViewer │ │ │ │ │ ├── ItemDefault.vue │ │ │ │ │ └── ItemText.vue │ │ │ ├── pages │ │ │ │ └── DefaultPage.vue │ │ │ ├── composables │ │ │ │ ├── usePause.ts │ │ │ │ ├── useTransform.ts │ │ │ │ ├── useDebounced.ts │ │ │ │ ├── usePolling.ts │ │ │ │ └── useCleanup.ts │ │ │ ├── settings.ts │ │ │ └── tsconfig.json │ │ ├── __init__.py │ │ ├── dist │ │ │ └── assets │ │ │ │ └── checkerboard.20081dd6.svg │ │ ├── .gitignore │ │ ├── tsconfig.json │ │ ├── .eslintrc │ │ ├── tailwind.config.js │ │ ├── webview.py │ │ └── index.html │ ├── infrastructure │ │ ├── __init__.py │ │ ├── no_op_log_service.py │ │ └── cleanup_service.py │ ├── jobs │ │ ├── circle_shoes_trade.py │ │ └── __init__.py │ ├── __init__.py │ ├── scenes │ │ ├── team_race │ │ │ ├── __init__.py │ │ │ └── competitor_memu_test.py │ │ ├── __init__.py │ │ ├── single_mode │ │ │ ├── __snapshots__ │ │ │ │ ├── go_out_menu_test │ │ │ │ │ ├── test_recognize.go_out_menu_3.json │ │ │ │ │ ├── test_recognize.go_out_menu_1.json │ │ │ │ │ ├── test_recognize.go_out_menu_2.json │ │ │ │ │ ├── test_recognize.go_out_menu_4.json │ │ │ │ │ └── test_recognize.go_out_menu_5.json │ │ │ │ └── aoharu_battle_confirm_test │ │ │ │ │ ├── test_recognize_predictions.aoharu_battle_confirm_menu_1.json │ │ │ │ │ └── test_recognize_predictions.aoharu_battle_confirm_menu_2.json │ │ │ ├── __init__.py │ │ │ ├── shop_test.py │ │ │ ├── item_menu_test.py │ │ │ ├── command_test.py │ │ │ └── go_out_menu_test.py │ │ └── unknown.py │ ├── services │ │ ├── __init__.py │ │ └── cleanup.py │ ├── single_mode │ │ ├── item │ │ │ ├── __snapshots__ │ │ │ │ └── plan_test │ │ │ │ │ └── test_duplicated_training_buff.txt │ │ │ ├── __init__.py │ │ │ └── globals.py │ │ ├── __snapshots__ │ │ │ ├── go_out_test │ │ │ │ ├── test_from_menu.go_out_menu_3.json │ │ │ │ ├── test_from_menu.go_out_menu_2.json │ │ │ │ └── test_from_menu.go_out_menu_1.json │ │ │ └── context_test │ │ │ │ ├── test_update_by_class_detail.json │ │ │ │ ├── test_update_by_class_detail_2.json │ │ │ │ ├── test_update_by_class_detail_3.json │ │ │ │ ├── test_update_by_class_detail_4.json │ │ │ │ ├── test_update_by_class_detail_5.json │ │ │ │ ├── test_update_by_class_detail_6.json │ │ │ │ ├── test_update_by_class_detail_issue35.json │ │ │ │ ├── test_update_by_class_detail_issue35_2.json │ │ │ │ └── test_update_by_class_detail_issue86.json │ │ ├── commands │ │ │ ├── __snapshots__ │ │ │ │ └── rest_test │ │ │ │ │ └── test_default_score.json │ │ │ ├── __init__.py │ │ │ └── command.py │ │ ├── __init__.py │ │ ├── training │ │ │ ├── __init__.py │ │ │ ├── globals.py │ │ │ └── history.py │ │ ├── race │ │ │ ├── globals.py │ │ │ ├── __init__.py │ │ │ └── history.py │ │ └── go_out_test.py │ ├── templates │ │ ├── any.pos.png │ │ ├── connecting.png │ │ ├── daily_race.png │ │ ├── close_button.png │ │ ├── home_button.png │ │ ├── jupiter_cup.png │ │ ├── race_button.png │ │ ├── retry_button.png │ │ ├── skip_button.png │ │ ├── cancel_button.png │ │ ├── connecting.pos.png │ │ ├── exchange_button.png │ │ ├── go_home_button.png │ │ ├── green_ok_button.png │ │ ├── jupiter_cup.pos.png │ │ ├── moonlight_prize.png │ │ ├── race_result_no1.png │ │ ├── race_result_no2.png │ │ ├── race_result_no3.png │ │ ├── race_result_no4.png │ │ ├── race_result_no5.png │ │ ├── race_result_no6.png │ │ ├── race_result_no8.png │ │ ├── return_button.png │ │ ├── rp_not_enough.png │ │ ├── scroll_to_end.png │ │ ├── skip_button.pos.png │ │ ├── team_race_draw.png │ │ ├── team_race_lose.png │ │ ├── team_race_win.png │ │ ├── close_now_button.png │ │ ├── go_to_race_button.png │ │ ├── green_next_button.png │ │ ├── limited_sale_open.png │ │ ├── race_again_button.png │ │ ├── race_choose_item.png │ │ ├── race_item_parfait.png │ │ ├── race_result_no10.png │ │ ├── race_start_button.png │ │ ├── scroll_to_end.pos.png │ │ ├── single_mode_rest.png │ │ ├── team_race_button.png │ │ ├── close_now_button.pos.png │ │ ├── go_home_button.pos.png │ │ ├── go_to_limited_sale.png │ │ ├── green_battle_button.png │ │ ├── legend_race_reward.png │ │ ├── moonlight_prize.pos.png │ │ ├── race_confirm_button.png │ │ ├── race_result_button.png │ │ ├── race_result_fail.pos.png │ │ ├── roulette_derby_bingo.png │ │ ├── roulette_derby_get.png │ │ ├── single_mode_continue.png │ │ ├── single_mode_finish.png │ │ ├── single_mode_option1.png │ │ ├── single_mode_option2.png │ │ ├── single_mode_option3.png │ │ ├── single_mode_option4.png │ │ ├── single_mode_option5.png │ │ ├── single_mode_rest.pos.png │ │ ├── green_tight_ok_button.png │ │ ├── legend_race_reward.pos.png │ │ ├── roulette_derby_get.pos.png │ │ ├── single_mode_end_button.png │ │ ├── single_mode_finish.pos.png │ │ ├── single_mode_ura_finals.png │ │ ├── team_race_next_button.png │ │ ├── daily_race_reward_clear.png │ │ ├── exchange_confirm_button.png │ │ ├── legend_race_race_button.png │ │ ├── legend_race_start_button.png │ │ ├── prediction_circle_outline.png │ │ ├── prediction_double_circle.png │ │ ├── roulette_derby_bingo.pos.png │ │ ├── roulette_derby_tap_button.png │ │ ├── single_mode_command_race.png │ │ ├── single_mode_command_shop.png │ │ ├── single_mode_continue.pos.png │ │ ├── single_mode_finish_button.png │ │ ├── single_mode_gene_inherit.png │ │ ├── single_mode_live_button.png │ │ ├── single_mode_option1.pos.png │ │ ├── single_mode_option2.pos.png │ │ ├── single_mode_option3.pos.png │ │ ├── single_mode_option4.pos.png │ │ ├── single_mode_option5.pos.png │ │ ├── team_race_result_button.png │ │ ├── exchange_confirm_button.pos.png │ │ ├── legend_race_confirm_button.png │ │ ├── legend_race_race_button.pos.png │ │ ├── prediction_triangle_outline.png │ │ ├── roulette_derby_reward_text.png │ │ ├── roulette_derby_skip_button.png │ │ ├── single_mode_command_go_out.png │ │ ├── single_mode_condition_charm.png │ │ ├── single_mode_condition_sharp.png │ │ ├── single_mode_end_button.pos.png │ │ ├── single_mode_fans_not_enough.png │ │ ├── single_mode_item_use_button.png │ │ ├── single_mode_shop_item_price.png │ │ ├── single_mode_ura_finals.pos.png │ │ ├── team_race_choose_competitor.png │ │ ├── __snapshots__ │ │ │ ├── single_mode_aoharu_choose_competitor_test │ │ │ │ ├── test_recognize_predictions.aoharu_competitor_menu_1.json │ │ │ │ └── test_recognize_predictions.aoharu_competitor_menu_issue186.json │ │ │ └── single_mode_option_test │ │ │ │ ├── test_match.event_options_issue129.json │ │ │ │ └── test_match.event_options_issue131.json │ │ ├── champions_meeting_entry_button.png │ │ ├── champions_meeting_race_button.png │ │ ├── champions_meeting_using_ticket.png │ │ ├── daily_race_ticket_not_enough.png │ │ ├── legend_race_collect_all_reward.png │ │ ├── legend_race_confirm_button.pos.png │ │ ├── legend_race_start_button.pos.png │ │ ├── roulette_derby_tap_button.pos.png │ │ ├── single_mode_aoharu_soul_full.png │ │ ├── single_mode_class_detail_title.png │ │ ├── single_mode_command_go_out.pos.png │ │ ├── single_mode_command_race.pos.png │ │ ├── single_mode_command_shop.pos.png │ │ ├── single_mode_command_training.png │ │ ├── single_mode_condition_headache.png │ │ ├── single_mode_crane_game_button.png │ │ ├── single_mode_finish_button.pos.png │ │ ├── single_mode_formal_race_banner.png │ │ ├── single_mode_go_out_friend_icon.png │ │ ├── single_mode_go_out_menu_title.png │ │ ├── single_mode_go_to_shop_button.png │ │ ├── single_mode_item_menu_button.png │ │ ├── single_mode_race_detail_button.png │ │ ├── single_mode_race_detail_title.png │ │ ├── single_mode_race_menu_fan_icon.png │ │ ├── single_mode_race_next_button.png │ │ ├── single_mode_race_start_button.png │ │ ├── single_mode_shop_decide_button.png │ │ ├── single_mode_target_unfinished.png │ │ ├── single_mode_training_confirm.png │ │ ├── team_race_high_score_updated.png │ │ ├── champions_meeting_confirm_title.png │ │ ├── champions_meeting_reward_button.png │ │ ├── race_running_style_change_button.png │ │ ├── single_mode_aoharu_final_banner.png │ │ ├── single_mode_class_detail_button.png │ │ ├── single_mode_command_health_care.png │ │ ├── single_mode_command_summer_rest.png │ │ ├── single_mode_command_training.pos.png │ │ ├── single_mode_condition_overweight.png │ │ ├── single_mode_fans_not_enough.pos.png │ │ ├── single_mode_item_menu_button.pos.png │ │ ├── single_mode_training_confirm.pos.png │ │ ├── team_race_all_race_result_button.png │ │ ├── team_race_choose_competitor.pos.png │ │ ├── champions_meeting_race_button.pos.png │ │ ├── champions_meeting_register_button.png │ │ ├── champions_meeting_reward_button.pos.png │ │ ├── champions_meeting_using_ticket.pos.png │ │ ├── legend_race_collect_all_reward.pos.png │ │ ├── roulette_derby_tap_button_disabled.png │ │ ├── single_mode_aoharu_main_race_button.png │ │ ├── single_mode_character_detail_button.png │ │ ├── single_mode_character_detail_title.png │ │ ├── single_mode_class_detail_button.pos.png │ │ ├── single_mode_class_detail_title.pos.png │ │ ├── single_mode_climax_command_go_out.png │ │ ├── single_mode_climax_grade_point_icon.png │ │ ├── single_mode_climax_rank_point_icon.png │ │ ├── single_mode_climax_rival_race_draw.png │ │ ├── single_mode_climax_rival_race_lose.png │ │ ├── single_mode_climax_rival_race_win.png │ │ ├── single_mode_command_health_care.pos.png │ │ ├── single_mode_command_summer_rest.pos.png │ │ ├── single_mode_continuous_race_title.png │ │ ├── single_mode_crane_game_button.pos.png │ │ ├── single_mode_formal_race_banner.pos.png │ │ ├── single_mode_go_out_friend_icon.pos.png │ │ ├── single_mode_go_out_menu_title.pos.png │ │ ├── single_mode_go_out_option_left_top.png │ │ ├── single_mode_go_to_shop_button.pos.png │ │ ├── single_mode_race_detail_button.pos.png │ │ ├── single_mode_race_detail_title.pos.png │ │ ├── single_mode_race_menu_fan_icon.pos.png │ │ ├── single_mode_scheduled_race_opening.png │ │ ├── single_mode_shop_use_confirm_button.png │ │ ├── single_mode_target_unfinished.pos.png │ │ ├── race_running_style_change_button.pos.png │ │ ├── single_mode_aoharu_choose_competitor.png │ │ ├── single_mode_aoharu_formal_race_banner.png │ │ ├── single_mode_aoharu_race_result_button.png │ │ ├── single_mode_climax_command_go_out.pos.png │ │ ├── single_mode_race_detail_no1_fan_count.png │ │ ├── single_mode_target_race_no_permission.png │ │ ├── team_race_all_race_result_button.pos.png │ │ ├── team_race_white_short_version_button.png │ │ ├── champions_meeting_entry_button_disabled.png │ │ ├── roulette_derby_tap_button_disabled.pos.png │ │ ├── single_mode_aoharu_auto_formation_title.png │ │ ├── single_mode_aoharu_battle_confirm_title.png │ │ ├── single_mode_aoharu_choose_competitor.pos.png │ │ ├── single_mode_aoharu_class_detail_button.png │ │ ├── single_mode_aoharu_final_battle_button.png │ │ ├── single_mode_aoharu_main_race_button.pos.png │ │ ├── single_mode_character_detail_button.pos.png │ │ ├── single_mode_character_detail_title.pos.png │ │ ├── single_mode_climax_class_detail_button.png │ │ ├── single_mode_climax_grade_point_icon.pos.png │ │ ├── single_mode_climax_grade_point_pt_text.png │ │ ├── single_mode_climax_green_continue_button.png │ │ ├── single_mode_climax_rank_point_icon.pos.png │ │ ├── single_mode_climax_white_continue_button.png │ │ ├── single_mode_crane_game_play_guide_button.png │ │ ├── single_mode_go_to_scheduled_race_button.png │ │ ├── single_mode_good_race_adaptability_star.png │ │ ├── single_mode_item_menu_current_quantity.png │ │ ├── single_mode_scheduled_race_opening.pos.png │ │ ├── team_race_white_short_version_button.pos.png │ │ ├── single_mode_aoharu_class_detail_button.pos.png │ │ ├── single_mode_aoharu_final_battle_button.pos.png │ │ ├── single_mode_aoharu_formal_race_banner.pos.png │ │ ├── single_mode_aoharu_race_result_button.pos.png │ │ ├── single_mode_climax_class_detail_button.pos.png │ │ ├── single_mode_race_detail_no1_fan_count.pos.png │ │ ├── single_mode_scheduled_race_opening_banner.png │ │ ├── single_mode_target_grade_point_not_enough.png │ │ ├── single_mode_target_race_no_permission.pos.png │ │ ├── single_mode_aoharu_auto_formation_title.pos.png │ │ ├── single_mode_aoharu_battle_confirm_title.pos.png │ │ ├── single_mode_climax_green_continue_button.pos.png │ │ ├── single_mode_climax_white_continue_button.pos.png │ │ ├── single_mode_crane_game_play_guide_button.pos.png │ │ ├── single_mode_go_to_scheduled_race_button.pos.png │ │ ├── single_mode_scheduled_race_opening_banner.pos.png │ │ ├── single_mode_target_grade_point_not_enough.pos.png │ │ ├── single_mode_item_menu_current_quantity_disabled.png │ │ ├── __init__.py.gotmpl │ │ └── Makefile │ ├── clients │ │ └── __init__.py │ ├── sound.py │ ├── data │ │ └── __init__.py │ ├── imagetools_test.py │ ├── conftest.py │ ├── version_test.py │ ├── mathtools_test.py │ └── app.py ├── data │ └── single_mode_choices.csv ├── pyrightconfig.json ├── requirements.txt ├── plugins │ ├── no_ocr_prompt.py │ ├── use_legacy_screenshot.py │ ├── no_item_prompt.py │ ├── no_event_prompt.py │ ├── limited_sale_buy_first_3.py │ ├── limited_sale_buy_everything.py │ ├── no_race_retry.py │ ├── afk.py │ ├── limited_sale_ignore.py │ ├── pause_on_last_turn.py │ ├── pause_before_command.py │ ├── less_op.py │ ├── pause_before_race_continue.py │ └── auto_crane.py ├── ok_derby_config.json ├── pack.cmd ├── utils │ └── util.py └── models │ └── resp.py └── ok-derby-frontend ├── README.md ├── public ├── robots.txt ├── favicon.ico ├── img │ ├── ground.png │ ├── mayano.jpg │ ├── kitasato.jpg │ ├── background3.jpg │ ├── brand │ │ ├── green.png │ │ ├── white.png │ │ └── favicon.png │ ├── theme │ │ ├── riceshower.png │ │ ├── profile-cover.jpg │ │ └── specialweek.png │ └── icons │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── mstile-150x150.png │ │ ├── apple-touch-icon.png │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-180x180.png │ │ └── msapplication-icon-144x144.png └── manifest.json ├── babel.config.js ├── src ├── assets │ ├── scss │ │ ├── custom │ │ │ ├── _map.scss │ │ │ ├── _close.scss │ │ │ ├── _mask.scss │ │ │ ├── _chart.scss │ │ │ ├── _modal.scss │ │ │ ├── _tables.scss │ │ │ ├── _footer.scss │ │ │ ├── _header.scss │ │ │ ├── _dropdown.scss │ │ │ ├── _popover.scss │ │ │ ├── _progress.scss │ │ │ ├── _input-group.scss │ │ │ ├── _separator.scss │ │ │ ├── _list-group.scss │ │ │ ├── _pagination.scss │ │ │ ├── _icons.scss │ │ │ ├── _nav.scss │ │ │ ├── _alert.scss │ │ │ ├── _avatar.scss │ │ │ ├── _badge.scss │ │ │ ├── _forms.scss │ │ │ ├── _buttons.scss │ │ │ ├── _reboot.scss │ │ │ ├── _type.scss │ │ │ ├── _vendors.scss │ │ │ ├── _card.scss │ │ │ ├── _navbar.scss │ │ │ ├── _custom-forms.scss │ │ │ ├── _mixins.scss │ │ │ └── _utilities.scss │ │ └── core │ │ │ ├── headers │ │ │ └── _header.scss │ │ │ ├── utilities │ │ │ ├── _sizing.scss │ │ │ ├── _image.scss │ │ │ ├── _overflow.scss │ │ │ ├── _helper.scss │ │ │ ├── _transform.scss │ │ │ ├── _position.scss │ │ │ ├── _shadows.scss │ │ │ └── _opacity.scss │ │ │ ├── cards │ │ │ ├── _card.scss │ │ │ ├── _card-animations.scss │ │ │ ├── _card-stats.scss │ │ │ └── _card-blockquote.scss │ │ │ ├── mixins │ │ │ ├── _icon.scss │ │ │ ├── _alert.scss │ │ │ ├── _badge.scss │ │ │ └── _modals.scss │ │ │ ├── maps │ │ │ └── _map.scss │ │ │ ├── type │ │ │ ├── _display.scss │ │ │ ├── _article.scss │ │ │ └── _type.scss │ │ │ ├── masks │ │ │ └── _mask.scss │ │ │ ├── buttons │ │ │ └── _button-brand.scss │ │ │ ├── avatars │ │ │ └── _avatar-group.scss │ │ │ ├── badges │ │ │ └── _badge-circle.scss │ │ │ ├── popovers │ │ │ └── _popover.scss │ │ │ ├── modals │ │ │ └── _modal.scss │ │ │ ├── vendors │ │ │ └── _headroom.scss │ │ │ ├── navs │ │ │ └── _nav.scss │ │ │ └── icons │ │ │ └── _icon-shape.scss │ ├── logo.png │ └── vendor │ │ └── nucleo │ │ └── fonts │ │ ├── nucleo-icons.eot │ │ ├── nucleo-icons.ttf │ │ ├── nucleo-icons.woff │ │ └── nucleo-icons.woff2 ├── App.vue ├── components │ ├── Tabs │ │ ├── PillsLayout.vue │ │ ├── TabsLayout.vue │ │ └── TabPane.vue │ ├── Charts │ │ ├── globalOptionsMixin.js │ │ ├── optionHelpers.js │ │ ├── BarChart.js │ │ ├── LineChart.js │ │ └── PieChart.js │ ├── stringUtils.js │ ├── BaseHeader.vue │ └── BaseSwitch.vue ├── store │ └── index.js ├── plugins │ ├── globalDirectives.js │ └── argon-dashboard.js ├── layout │ └── Content.vue ├── config.json └── directives │ └── click-ouside.js ├── .gitignore └── vue.config.js /ok-derby-backend/typings/PIL/__main__.pyi: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/.prettierignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/PdfImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/adb_shell/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/adb_shell/auth/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/infrastructure/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/jobs/circle_shoes_trade.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/adb_shell/transport/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/METADATA.toml: -------------------------------------------------------------------------------- 1 | version = "8.3" 2 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/_version.pyi: -------------------------------------------------------------------------------- 1 | __version__: str 2 | -------------------------------------------------------------------------------- /ok-derby-frontend/README.md: -------------------------------------------------------------------------------- 1 | # ok-derby 前端 2 | 3 | 基于 Vue.js 4 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | public 3 | node_modules 4 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/JpegPresets.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | presets: Any 4 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/_tkinter_finder.pyi: -------------------------------------------------------------------------------- 1 | TKINTER_LIB: str 2 | tk_version: str 3 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/cv2/__init__.pyi: -------------------------------------------------------------------------------- 1 | from ._contrib import * 2 | from .cv2 import * 3 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImagePath.pyi: -------------------------------------------------------------------------------- 1 | from ._imaging import path 2 | 3 | Path = path 4 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/__init__.py: -------------------------------------------------------------------------------- 1 | from .plugin import Plugin 2 | from ._config import config 3 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/WalImageFile.pyi: -------------------------------------------------------------------------------- 1 | def open(filename): ... 2 | 3 | quake2palette: bytes 4 | -------------------------------------------------------------------------------- /ok-derby-frontend/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/team_race/__init__.py: -------------------------------------------------------------------------------- 1 | from .competitor_menu import CompetitorMenuScene 2 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_map.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Maps 3 | // 4 | 5 | @import "../core/maps/map"; 6 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "es5" 4 | } 5 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/__init__.pyi: -------------------------------------------------------------------------------- 1 | __version__: str 2 | 3 | class UnidentifiedImageError(IOError): ... 4 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_close.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Close 3 | // 4 | 5 | @import "../core/close/close" 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_mask.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Mask 3 | // 4 | 5 | @import "../core/masks/mask"; 6 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [require('tailwindcss')], 3 | }; 4 | -------------------------------------------------------------------------------- /ok-derby-backend/data/single_mode_choices.csv: -------------------------------------------------------------------------------- 1 | ff6611df6b68a37c34ae5b58f384e4f8,5 2 | 577562d5ca5074360cc6dfd975ad3c64,1 3 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_chart.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Chart 3 | // 4 | 5 | @import "../core/charts/chart"; 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_modal.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Modal 3 | // 4 | 5 | @import "../core/modals/modal"; 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_tables.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Tables 3 | // 4 | 5 | @import "../core/tables/table"; 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/favicon.ico -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/src/assets/logo.png -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_footer.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Footer 3 | // 4 | 5 | @import "../core/footers/footer"; 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_header.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Header 3 | // 4 | 5 | @import "../core/headers/header"; 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/ground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/ground.png -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/mayano.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/mayano.jpg -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_dropdown.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Dropdown 3 | // 4 | 5 | @import "../core/dropdowns/dropdown"; 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_popover.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Popover 3 | // 4 | 5 | 6 | @import "../core/popovers/popover"; 7 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_progress.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Progress 3 | // 4 | 5 | @import "../core/progresses/progress"; 6 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/services/__init__.py: -------------------------------------------------------------------------------- 1 | """Service interfaces, implementation code should go to infrastracture package.""" 2 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/item/__snapshots__/plan_test/test_duplicated_training_buff.txt: -------------------------------------------------------------------------------- 1 | 健康祈願のお守り,スタミナアンクルウェイト,ブートキャンプメガホン -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ExifTags.pyi: -------------------------------------------------------------------------------- 1 | from typing import Mapping 2 | 3 | TAGS: Mapping[int, str] 4 | GPSTAGS: Mapping[int, str] 5 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/kitasato.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/kitasato.jpg -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_input-group.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Input group 3 | // 4 | 5 | @import "../core/forms/input-group"; 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_separator.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Separator 3 | // 4 | 5 | @import "../core/separators/separator"; 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/background3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/background3.jpg -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/brand/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/brand/green.png -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/brand/white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/brand/white.png -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/headers/_header.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Header 3 | // 4 | 5 | .header { 6 | position: relative; 7 | } 8 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_list-group.scss: -------------------------------------------------------------------------------- 1 | // 2 | // List group 3 | // 4 | 5 | @import "../core/list-groups/list-group"; 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_pagination.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Pagination 3 | // 4 | 5 | @import "../core/paginations/pagination"; 6 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/types/define.d.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line no-underscore-dangle 2 | declare const __VERSION__: string; 3 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/brand/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/brand/favicon.png -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/utilities/_sizing.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Height 3 | // 4 | 5 | .h-100vh { 6 | height: 100vh !important; 7 | } 8 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/__init__.py: -------------------------------------------------------------------------------- 1 | from .paddock import PaddockScene 2 | from .scene import Scene 3 | from .unknown import UnknownScene 4 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/any.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/any.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/pyrightconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "reportMissingModuleSource": "none", 3 | "exclude": [ 4 | "*_images.local", 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/PalmImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | def build_prototype_image(): ... 4 | 5 | Palm8BitColormapImage: Any 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/theme/riceshower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/theme/riceshower.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/connecting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/connecting.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/daily_race.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/daily_race.png -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/favicon-16x16.png -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/favicon-32x32.png -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/theme/profile-cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/theme/profile-cover.jpg -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/theme/specialweek.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/theme/specialweek.png -------------------------------------------------------------------------------- /ok-derby-frontend/src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_icons.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Icon 3 | // 4 | 5 | @import "../core/icons/icon"; 6 | @import "../core/icons/icon-shape"; 7 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_nav.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Nav 3 | // 4 | 5 | 6 | @import "../core/navs/nav"; 7 | @import "../core/navs/nav-pills"; 8 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/clients/__init__.py: -------------------------------------------------------------------------------- 1 | from .client import Client, set_current, current 2 | from .dmm import DMMClient 3 | from .adb import ADBClient 4 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/go_out_test/test_from_menu.go_out_menu_3.json: -------------------------------------------------------------------------------- 1 | [ 2 | "Option" 3 | ] -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/close_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/close_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/home_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/home_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/jupiter_cup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/jupiter_cup.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/retry_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/retry_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/skip_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/skip_button.png -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImageColor.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | def getrgb(color): ... 4 | def getcolor(color, mode): ... 5 | 6 | colormap: Any 7 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/mstile-150x150.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/cancel_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/cancel_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/connecting.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/connecting.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/exchange_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/exchange_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/go_home_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/go_home_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/green_ok_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/green_ok_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/jupiter_cup.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/jupiter_cup.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/moonlight_prize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/moonlight_prize.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_result_no1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_result_no1.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_result_no2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_result_no2.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_result_no3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_result_no3.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_result_no4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_result_no4.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_result_no5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_result_no5.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_result_no6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_result_no6.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_result_no8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_result_no8.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/return_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/return_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/rp_not_enough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/rp_not_enough.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/scroll_to_end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/scroll_to_end.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/skip_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/skip_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_draw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_draw.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_lose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_lose.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_win.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_win.png -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_alert.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Alert 3 | // 4 | 5 | @import "../core/alerts/alert"; 6 | @import "../core/alerts/alert-dismissible"; 7 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_avatar.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Avatar 3 | // 4 | 5 | @import "../core/avatars/avatar"; 6 | @import "../core/avatars/avatar-group"; 7 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/close_now_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/close_now_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/go_to_race_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/go_to_race_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/green_next_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/green_next_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/limited_sale_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/limited_sale_open.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_again_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_again_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_choose_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_choose_item.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_item_parfait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_item_parfait.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_result_no10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_result_no10.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_start_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_start_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/scroll_to_end.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/scroll_to_end.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_rest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_rest.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/services/message.ts: -------------------------------------------------------------------------------- 1 | export default interface MessageService { 2 | info(msg: string): void; 3 | error(msg: string): void; 4 | } 5 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/cards/_card.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Card 3 | // 4 | 5 | 6 | .card-translucent { 7 | background-color: rgba(18, 91, 152, 0.08); 8 | } 9 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/close_now_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/close_now_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/go_home_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/go_home_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/go_to_limited_sale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/go_to_limited_sale.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/green_battle_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/green_battle_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/legend_race_reward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/legend_race_reward.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/moonlight_prize.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/moonlight_prize.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_confirm_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_confirm_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_result_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_result_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_result_fail.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_result_fail.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/roulette_derby_bingo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/roulette_derby_bingo.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/roulette_derby_get.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/roulette_derby_get.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_continue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_continue.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_finish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_finish.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_option1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_option1.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_option2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_option2.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_option3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_option3.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_option4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_option4.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_option5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_option5.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_rest.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_rest.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue'; 2 | import App from './App.vue'; 3 | import './main.scss'; 4 | 5 | createApp(App).mount('#app'); 6 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/SunImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import ImageFile 2 | 3 | class SunImageFile(ImageFile): 4 | format: str 5 | format_description: str 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/green_tight_ok_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/green_tight_ok_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/legend_race_reward.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/legend_race_reward.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/roulette_derby_get.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/roulette_derby_get.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_end_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_end_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_finish.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_finish.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_ura_finals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_ura_finals.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_next_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_next_button.png -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/McIdasImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import ImageFile 2 | 3 | class McIdasImageFile(ImageFile): 4 | format: str 5 | format_description: str 6 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/PixarImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import ImageFile 2 | 3 | class PixarImageFile(ImageFile): 4 | format: str 5 | format_description: str 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /ok-derby-frontend/src/components/Tabs/PillsLayout.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/daily_race_reward_clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/daily_race_reward_clear.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/exchange_confirm_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/exchange_confirm_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/legend_race_race_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/legend_race_race_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/legend_race_start_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/legend_race_start_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/prediction_circle_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/prediction_circle_outline.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/prediction_double_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/prediction_double_circle.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/roulette_derby_bingo.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/roulette_derby_bingo.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/roulette_derby_tap_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/roulette_derby_tap_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_race.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_race.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_shop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_shop.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_continue.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_continue.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_finish_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_finish_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_gene_inherit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_gene_inherit.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_live_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_live_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_option1.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_option1.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_option2.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_option2.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_option3.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_option3.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_option4.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_option4.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_option5.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_option5.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_result_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_result_button.png -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/CurImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .BmpImagePlugin import BmpImageFile 2 | 3 | class CurImageFile(BmpImageFile): 4 | format: str 5 | format_description: str 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/img/icons/msapplication-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/public/img/icons/msapplication-icon-144x144.png -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/vendor/nucleo/fonts/nucleo-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/src/assets/vendor/nucleo/fonts/nucleo-icons.eot -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/vendor/nucleo/fonts/nucleo-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/src/assets/vendor/nucleo/fonts/nucleo-icons.ttf -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/vendor/nucleo/fonts/nucleo-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/src/assets/vendor/nucleo/fonts/nucleo-icons.woff -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/vendor/nucleo/fonts/nucleo-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-frontend/src/assets/vendor/nucleo/fonts/nucleo-icons.woff2 -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/exchange_confirm_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/exchange_confirm_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/legend_race_confirm_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/legend_race_confirm_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/legend_race_race_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/legend_race_race_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/prediction_triangle_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/prediction_triangle_outline.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/roulette_derby_reward_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/roulette_derby_reward_text.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/roulette_derby_skip_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/roulette_derby_skip_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_go_out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_go_out.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_condition_charm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_condition_charm.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_condition_sharp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_condition_sharp.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_end_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_end_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_fans_not_enough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_fans_not_enough.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_item_use_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_item_use_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_shop_item_price.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_shop_item_price.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_ura_finals.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_ura_finals.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_choose_competitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_choose_competitor.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/__snapshots__/single_mode_aoharu_choose_competitor_test/test_recognize_predictions.aoharu_competitor_menu_1.json: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | 213, 4 | 110 5 | ] 6 | ] -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/champions_meeting_entry_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/champions_meeting_entry_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/champions_meeting_race_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/champions_meeting_race_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/champions_meeting_using_ticket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/champions_meeting_using_ticket.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/daily_race_ticket_not_enough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/daily_race_ticket_not_enough.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/legend_race_collect_all_reward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/legend_race_collect_all_reward.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/legend_race_confirm_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/legend_race_confirm_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/legend_race_start_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/legend_race_start_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/roulette_derby_tap_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/roulette_derby_tap_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_soul_full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_soul_full.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_class_detail_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_class_detail_title.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_go_out.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_go_out.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_race.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_race.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_shop.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_shop.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_training.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_training.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_condition_headache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_condition_headache.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_crane_game_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_crane_game_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_finish_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_finish_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_formal_race_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_formal_race_banner.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_go_out_friend_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_go_out_friend_icon.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_go_out_menu_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_go_out_menu_title.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_go_to_shop_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_go_to_shop_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_item_menu_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_item_menu_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_race_detail_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_race_detail_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_race_detail_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_race_detail_title.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_race_menu_fan_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_race_menu_fan_icon.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_race_next_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_race_next_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_race_start_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_race_start_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_shop_decide_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_shop_decide_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_target_unfinished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_target_unfinished.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_training_confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_training_confirm.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_high_score_updated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_high_score_updated.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/champions_meeting_confirm_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/champions_meeting_confirm_title.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/champions_meeting_reward_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/champions_meeting_reward_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_running_style_change_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_running_style_change_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_final_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_final_banner.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_class_detail_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_class_detail_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_health_care.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_health_care.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_summer_rest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_summer_rest.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_training.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_training.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_condition_overweight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_condition_overweight.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_fans_not_enough.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_fans_not_enough.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_item_menu_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_item_menu_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_training_confirm.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_training_confirm.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_all_race_result_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_all_race_result_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_choose_competitor.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_choose_competitor.pos.png -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_badge.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Badge 3 | // 4 | 5 | @import "../core/badges/badge"; 6 | @import "../core/badges/badge-circle"; 7 | @import "../core/badges/badge-dot"; 8 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/__snapshots__/go_out_menu_test/test_recognize.go_out_menu_3.json: -------------------------------------------------------------------------------- 1 | { 2 | "options": [ 3 | "Option" 4 | ] 5 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/commands/__snapshots__/rest_test/test_default_score.json: -------------------------------------------------------------------------------- 1 | { 2 | "vit=0.0": 30.0, 3 | "vit=0.3": 30.0, 4 | "vit=0.8": 11.999999999999998, 5 | "vit=1.0": 0.0 6 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/__snapshots__/single_mode_aoharu_choose_competitor_test/test_recognize_predictions.aoharu_competitor_menu_issue186.json: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | 426, 4 | 220 5 | ] 6 | ] -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/champions_meeting_race_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/champions_meeting_race_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/champions_meeting_register_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/champions_meeting_register_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/champions_meeting_reward_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/champions_meeting_reward_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/champions_meeting_using_ticket.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/champions_meeting_using_ticket.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/legend_race_collect_all_reward.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/legend_race_collect_all_reward.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/roulette_derby_tap_button_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/roulette_derby_tap_button_disabled.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_main_race_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_main_race_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_character_detail_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_character_detail_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_character_detail_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_character_detail_title.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_class_detail_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_class_detail_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_class_detail_title.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_class_detail_title.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_command_go_out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_command_go_out.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_grade_point_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_grade_point_icon.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_rank_point_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_rank_point_icon.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_rival_race_draw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_rival_race_draw.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_rival_race_lose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_rival_race_lose.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_rival_race_win.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_rival_race_win.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_health_care.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_health_care.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_command_summer_rest.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_command_summer_rest.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_continuous_race_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_continuous_race_title.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_crane_game_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_crane_game_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_formal_race_banner.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_formal_race_banner.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_go_out_friend_icon.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_go_out_friend_icon.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_go_out_menu_title.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_go_out_menu_title.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_go_out_option_left_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_go_out_option_left_top.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_go_to_shop_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_go_to_shop_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_race_detail_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_race_detail_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_race_detail_title.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_race_detail_title.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_race_menu_fan_icon.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_race_menu_fan_icon.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_scheduled_race_opening.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_scheduled_race_opening.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_shop_use_confirm_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_shop_use_confirm_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_target_unfinished.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_target_unfinished.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/XVThumbImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import ImageFile 2 | 3 | PALETTE: bytes 4 | 5 | class XVThumbImageFile(ImageFile): 6 | format: str 7 | format_description: str 8 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/utilities/_image.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Image 3 | // 4 | 5 | .img-center { 6 | display: block; 7 | margin-left: auto; 8 | margin-right: auto; 9 | } 10 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_forms.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Forms 3 | // 4 | 5 | @import "../core/forms/form"; 6 | @import "../core/forms/form-validation"; 7 | @import "../core/forms/input-group"; 8 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/race_running_style_change_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/race_running_style_change_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_choose_competitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_choose_competitor.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_formal_race_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_formal_race_banner.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_race_result_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_race_result_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_command_go_out.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_command_go_out.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_race_detail_no1_fan_count.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_race_detail_no1_fan_count.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_target_race_no_permission.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_target_race_no_permission.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_all_race_result_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_all_race_result_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_white_short_version_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_white_short_version_button.png -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_buttons.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Button 3 | // 4 | 5 | @import "../core/buttons/button"; 6 | @import "../core/buttons/button-icon"; 7 | @import "../core/buttons/button-brand"; 8 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/champions_meeting_entry_button_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/champions_meeting_entry_button_disabled.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/roulette_derby_tap_button_disabled.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/roulette_derby_tap_button_disabled.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_auto_formation_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_auto_formation_title.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_battle_confirm_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_battle_confirm_title.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_choose_competitor.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_choose_competitor.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_class_detail_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_class_detail_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_final_battle_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_final_battle_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_main_race_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_main_race_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_character_detail_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_character_detail_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_character_detail_title.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_character_detail_title.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_class_detail_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_class_detail_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_grade_point_icon.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_grade_point_icon.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_grade_point_pt_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_grade_point_pt_text.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_green_continue_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_green_continue_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_rank_point_icon.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_rank_point_icon.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_white_continue_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_white_continue_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_crane_game_play_guide_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_crane_game_play_guide_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_go_to_scheduled_race_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_go_to_scheduled_race_button.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_good_race_adaptability_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_good_race_adaptability_star.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_item_menu_current_quantity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_item_menu_current_quantity.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_scheduled_race_opening.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_scheduled_race_opening.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/team_race_white_short_version_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/team_race_white_short_version_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/GdImageFile.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import ImageFile 2 | 3 | class GdImageFile(ImageFile): 4 | format: str 5 | format_description: str 6 | 7 | def open(fp, mode: str = ...): ... 8 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/mixins/_icon.scss: -------------------------------------------------------------------------------- 1 | @mixin icon-shape-variant($color) { 2 | color: saturate(darken($color, 10%), 10); 3 | background-color: transparentize(lighten($color, 10%), .5); 4 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_class_detail_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_class_detail_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_final_battle_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_final_battle_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_formal_race_banner.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_formal_race_banner.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_race_result_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_race_result_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_class_detail_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_class_detail_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_race_detail_no1_fan_count.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_race_detail_no1_fan_count.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_scheduled_race_opening_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_scheduled_race_opening_banner.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_target_grade_point_not_enough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_target_grade_point_not_enough.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_target_race_no_permission.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_target_race_no_permission.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/PaletteFile.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | class PaletteFile: 4 | rawmode: str 5 | palette: Any 6 | def __init__(self, fp) -> None: ... 7 | def getpalette(self): ... 8 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/go_out_test/test_from_menu.go_out_menu_2.json: -------------------------------------------------------------------------------- 1 | [ 2 | "Option", 3 | "Option" 4 | ] -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_auto_formation_title.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_auto_formation_title.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_aoharu_battle_confirm_title.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_aoharu_battle_confirm_title.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_green_continue_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_green_continue_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_climax_white_continue_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_climax_white_continue_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_crane_game_play_guide_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_crane_game_play_guide_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_go_to_scheduled_race_button.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_go_to_scheduled_race_button.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_scheduled_race_opening_banner.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_scheduled_race_opening_banner.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_target_grade_point_not_enough.pos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_target_grade_point_not_enough.pos.png -------------------------------------------------------------------------------- /ok-derby-backend/requirements.txt: -------------------------------------------------------------------------------- 1 | pywin32==300 2 | opencv-python==4.5.2.52 3 | opencv-contrib-python==4.5.2.52 4 | cast-unknown==0.1.6 5 | numpy==1.20.3 6 | pillow==8.2.0 7 | mouse==0.7.1 8 | adb-shell==0.3.3 9 | tornado~=6.1 -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/GimpPaletteFile.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | class GimpPaletteFile: 4 | rawmode: str 5 | palette: Any 6 | def __init__(self, fp) -> None: ... 7 | def getpalette(self): ... 8 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_reboot.scss: -------------------------------------------------------------------------------- 1 | iframe { 2 | border: 0; 3 | } 4 | 5 | figcaption, 6 | figure, 7 | main { 8 | display: block; 9 | } 10 | 11 | main { 12 | overflow: hidden; 13 | } 14 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/go_out_test/test_from_menu.go_out_menu_1.json: -------------------------------------------------------------------------------- 1 | [ 2 | "Option", 3 | "Option" 4 | ] -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/single_mode_item_menu_current_quantity_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Akegarasu/ok-derby/HEAD/ok-derby-backend/auto_derby/templates/single_mode_item_menu_current_quantity_disabled.png -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_type.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Typography 3 | // 4 | 5 | @import "../core/type/type"; 6 | @import "../core/type/heading"; 7 | @import "../core/type/display"; 8 | @import "../core/type/article"; 9 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/utils/clamp.ts: -------------------------------------------------------------------------------- 1 | export default function clamp(v: number, min: number, max: number): number { 2 | if (max <= min) { 3 | return min; 4 | } 5 | return Math.min(Math.max(v, min), max); 6 | } 7 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImtImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | field: Any 6 | 7 | class ImtImageFile(ImageFile): 8 | format: str 9 | format_description: str 10 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/maps/_map.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Map 3 | // 4 | 5 | .map-canvas { 6 | position: relative; 7 | width: 100%; 8 | height: $map-height; 9 | border-radius: $border-radius; 10 | } 11 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/__init__.py.gotmpl: -------------------------------------------------------------------------------- 1 | # Code Generated from {{ templateFiles }}, DO NOT EDIT. 2 | 3 | {{- range .Files }} 4 | {{ . | snakecase | upper | replace "." "_" | trimSuffix "_PNG" }} = "{{.}}" 5 | {{- end }} 6 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/utils/compare.ts: -------------------------------------------------------------------------------- 1 | export default function compare(a: T, b: T): -1 | 0 | 1 { 2 | if (a > b) { 3 | return 1; 4 | } 5 | if (a < b) { 6 | return -1; 7 | } 8 | return 0; 9 | } 10 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/XbmImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | xbm_head: Any 6 | 7 | class XbmImageFile(ImageFile): 8 | format: str 9 | format_description: str 10 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/BufrStubImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import StubImageFile 2 | 3 | def register_handler(handler) -> None: ... 4 | 5 | class BufrStubImageFile(StubImageFile): 6 | format: str 7 | format_description: str 8 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/FitsStubImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import StubImageFile 2 | 3 | def register_handler(handler) -> None: ... 4 | 5 | class FITSStubImageFile(StubImageFile): 6 | format: str 7 | format_description: str 8 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/FliImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import ImageFile 2 | 3 | class FliImageFile(ImageFile): 4 | format: str 5 | format_description: str 6 | def seek(self, frame) -> None: ... 7 | def tell(self): ... 8 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/GribStubImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import StubImageFile 2 | 3 | def register_handler(handler) -> None: ... 4 | 5 | class GribStubImageFile(StubImageFile): 6 | format: str 7 | format_description: str 8 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/Hdf5StubImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import StubImageFile 2 | 3 | def register_handler(handler) -> None: ... 4 | 5 | class HDF5StubImageFile(StubImageFile): 6 | format: str 7 | format_description: str 8 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__init__.py: -------------------------------------------------------------------------------- 1 | from . import event, go_out, race, item, condition 2 | from .context import Context 3 | from .race import Race, RaceResult 4 | from .training import Training 5 | from .rival_race import RivalRace 6 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/utilities/_overflow.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Overflow 3 | // 4 | 5 | .overflow-visible { 6 | overflow: visible !important; 7 | } 8 | 9 | .overflow-hidden { 10 | overflow: hidden !important; 11 | } 12 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/components/Charts/globalOptionsMixin.js: -------------------------------------------------------------------------------- 1 | import Chart from 'chart.js'; 2 | import { initGlobalOptions } from "@/components/Charts/config"; 3 | export default { 4 | mounted() { 5 | initGlobalOptions(Chart); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_vendors.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Vendors 3 | // include plugin styles 4 | // 5 | 6 | 7 | @import "../core/vendors/flatpickr"; 8 | @import "../core/vendors/nouislider"; 9 | @import "../core/vendors/scrollbar"; 10 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/MspImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import ImageFile, PyDecoder 2 | 3 | class MspImageFile(ImageFile): 4 | format: str 5 | format_description: str 6 | 7 | class MspDecoder(PyDecoder): 8 | def decode(self, buffer): ... 9 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/PcxImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | logger: Any 6 | 7 | class PcxImageFile(ImageFile): 8 | format: str 9 | format_description: str 10 | 11 | SAVE: Any 12 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/PpmImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | b_whitespace: bytes 6 | MODES: Any 7 | 8 | class PpmImageFile(ImageFile): 9 | format: str 10 | format_description: str 11 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/TgaImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | MODES: Any 6 | 7 | class TgaImageFile(ImageFile): 8 | format: str 9 | format_description: str 10 | 11 | SAVE: Any 12 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/type/_display.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Display 3 | // 4 | 5 | 6 | .display-1, 7 | .display-2, 8 | .display-3, 9 | .display-4 { 10 | span { 11 | display: block; 12 | font-weight: $font-weight-light; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/utils/equalArray.ts: -------------------------------------------------------------------------------- 1 | export default function equalArray(a: T, b: T): boolean { 2 | if (a.length !== b.length) { 3 | return false; 4 | } 5 | 6 | return a.every((v, index) => b[index] === v); 7 | } 8 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/masks/_mask.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Mask 3 | // 4 | 5 | .mask { 6 | position: absolute; 7 | top: 0; 8 | left: 0; 9 | width: 100%; 10 | height: 100%; 11 | @include transition($transition-base); 12 | } 13 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/__snapshots__/go_out_menu_test/test_recognize.go_out_menu_1.json: -------------------------------------------------------------------------------- 1 | { 2 | "options": [ 3 | "Option", 4 | "Option" 5 | ] 6 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/__snapshots__/go_out_menu_test/test_recognize.go_out_menu_2.json: -------------------------------------------------------------------------------- 1 | { 2 | "options": [ 3 | "Option", 4 | "Option" 5 | ] 6 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/__snapshots__/go_out_menu_test/test_recognize.go_out_menu_4.json: -------------------------------------------------------------------------------- 1 | { 2 | "options": [ 3 | "Option", 4 | "Option" 5 | ] 6 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/__snapshots__/go_out_menu_test/test_recognize.go_out_menu_5.json: -------------------------------------------------------------------------------- 1 | { 2 | "options": [ 3 | "Option", 4 | "Option" 5 | ] 6 | } -------------------------------------------------------------------------------- /ok-derby-backend/plugins/no_ocr_prompt.py: -------------------------------------------------------------------------------- 1 | import auto_derby 2 | 3 | 4 | class Plugin(auto_derby.Plugin): 5 | def install(self) -> None: 6 | auto_derby.config.ocr_prompt_disabled = True 7 | 8 | 9 | auto_derby.plugin.register(__name__, Plugin()) 10 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/GbrImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | class GbrImageFile(ImageFile): 6 | format: str 7 | format_description: str 8 | im: Any 9 | def load(self) -> None: ... 10 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImageStat.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | class Stat: 4 | h: Any 5 | bands: Any 6 | def __init__(self, image_or_list, mask: Any | None = ...) -> None: ... 7 | def __getattr__(self, id): ... 8 | 9 | Global = Stat 10 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/PcdImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | class PcdImageFile(ImageFile): 6 | format: str 7 | format_description: str 8 | im: Any 9 | def load_end(self) -> None: ... 10 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/use_legacy_screenshot.py: -------------------------------------------------------------------------------- 1 | import auto_derby 2 | 3 | 4 | class Plugin(auto_derby.Plugin): 5 | def install(self) -> None: 6 | auto_derby.config.use_legacy_screenshot = True 7 | 8 | 9 | auto_derby.plugin.register(__name__, Plugin()) 10 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/BdfFontFile.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .FontFile import FontFile 4 | 5 | bdf_slant: Any 6 | bdf_spacing: Any 7 | 8 | def bdf_char(f): ... 9 | 10 | class BdfFontFile(FontFile): 11 | def __init__(self, fp) -> None: ... 12 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/XpmImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | xpm_head: Any 6 | 7 | class XpmImageFile(ImageFile): 8 | format: str 9 | format_description: str 10 | def load_read(self, bytes): ... 11 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/cards/_card-animations.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Card with hover animations 3 | // 4 | 5 | .card-lift--hover { 6 | &:hover { 7 | transform: translateY(-20px); 8 | @include transition($transition-base); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/utils/loadImage.ts: -------------------------------------------------------------------------------- 1 | export default async function loadImage( 2 | url: string 3 | ): Promise { 4 | const img = new Image(); 5 | img.src = url; 6 | img.alt = url; 7 | await img.decode(); 8 | return img; 9 | } 10 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/no_item_prompt.py: -------------------------------------------------------------------------------- 1 | import auto_derby 2 | 3 | 4 | class Plugin(auto_derby.Plugin): 5 | def install(self) -> None: 6 | auto_derby.config.single_mode_item_prompt_disabled = True 7 | 8 | 9 | auto_derby.plugin.register(__name__, Plugin()) 10 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/FpxImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | MODES: Any 6 | 7 | class FpxImageFile(ImageFile): 8 | format: str 9 | format_description: str 10 | fp: Any 11 | def load(self): ... 12 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/__init__.py: -------------------------------------------------------------------------------- 1 | from ._prompt import prompt 2 | from .webview import Webview, NoOpWebview 3 | from .middleware import File, Route, Dir, Blob, Path 4 | from . import middleware, page 5 | from .stream import Stream 6 | from ._create_server import create_server 7 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/utils/matchSearchKeys.ts: -------------------------------------------------------------------------------- 1 | export default function matchSearchKeys( 2 | query: string, 3 | searchKeys: string[] 4 | ): boolean { 5 | return query 6 | .split(' ') 7 | .every((keyword) => searchKeys.some((key) => key.includes(keyword))); 8 | } 9 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/no_event_prompt.py: -------------------------------------------------------------------------------- 1 | import auto_derby 2 | 3 | 4 | class Plugin(auto_derby.Plugin): 5 | def install(self) -> None: 6 | auto_derby.config.single_mode_event_prompt_disabled = True 7 | 8 | 9 | auto_derby.plugin.register(__name__, Plugin()) 10 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/Jpeg2KImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | class Jpeg2KImageFile(ImageFile): 6 | format: str 7 | format_description: str 8 | reduce: Any 9 | tile: Any 10 | def load(self): ... 11 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/buttons/_button-brand.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Brand buttons 3 | // 4 | 5 | 6 | // Color variations 7 | 8 | @each $color, $value in $brand-colors { 9 | .btn-#{$color} { 10 | @include button-variant($value, $value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/jobs/__init__.py: -------------------------------------------------------------------------------- 1 | from .nurturing import nurturing 2 | from .team_race import team_race 3 | from .daily_race import daily_race 4 | from .legend_race import legend_race 5 | from .roulette_derby import roulette_derby 6 | from .champions_meeting import champions_meeting 7 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImageMode.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | class ModeDescriptor: 4 | mode: Any 5 | bands: Any 6 | basemode: Any 7 | basetype: Any 8 | def __init__(self, mode, bands, basemode, basetype) -> None: ... 9 | 10 | def getmode(mode): ... 11 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_card.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Cards 3 | // 4 | 5 | @import "../core/cards/card"; 6 | @import "../core/cards/card-profile"; 7 | @import "../core/cards/card-blockquote"; 8 | @import "../core/cards/card-animations"; 9 | @import "../core/cards/card-stats"; 10 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/FtexImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from .ImageFile import ImageFile 2 | 3 | MAGIC: bytes 4 | FORMAT_DXT1: int 5 | FORMAT_UNCOMPRESSED: int 6 | 7 | class FtexImageFile(ImageFile): 8 | format: str 9 | format_description: str 10 | def load_seek(self, pos) -> None: ... 11 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/utils/assertNever.ts: -------------------------------------------------------------------------------- 1 | import { isDevelopmentMode } from '@/settings'; 2 | 3 | export default function assertNever(...args: never[]): void { 4 | if (isDevelopmentMode) { 5 | // eslint-disable-next-line no-console 6 | console.warn('assertNever', ...args); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_navbar.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Navbar 3 | // 4 | 5 | @import "../core/navbars/navbar"; 6 | @import "../core/navbars/navbar-vertical"; 7 | @import "../core/navbars/navbar-search"; 8 | @import "../core/navbars/navbar-dropdown"; 9 | @import "../core/navbars/navbar-collapse"; 10 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/SgiImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile, PyDecoder 4 | 5 | MODES: Any 6 | 7 | class SgiImageFile(ImageFile): 8 | format: str 9 | format_description: str 10 | 11 | class SGI16Decoder(PyDecoder): 12 | def decode(self, buffer): ... 13 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/training/__init__.py: -------------------------------------------------------------------------------- 1 | from .training import Training 2 | from .partner import Partner 3 | from .globals import g 4 | import logging 5 | from .history import History 6 | 7 | # Deprecated: remove at next major version 8 | LOGGER = logging.getLogger(__name__) 9 | 10 | __all__ = ["g"] 11 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/assets/checkerboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/MicImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .TiffImagePlugin import TiffImageFile 4 | 5 | class MicImageFile(TiffImageFile): 6 | format: str 7 | format_description: str 8 | fp: Any 9 | frame: Any 10 | def seek(self, frame) -> None: ... 11 | def tell(self): ... 12 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/_util.pyi: -------------------------------------------------------------------------------- 1 | from typing import NoReturn 2 | 3 | def isPath(f: object) -> bool: ... 4 | def isDirectory(f: object) -> bool: ... 5 | 6 | class deferred_error: 7 | ex: BaseException 8 | def __init__(self, ex: BaseException) -> None: ... 9 | def __getattr__(self, elt: str) -> NoReturn: ... 10 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/dist/assets/checkerboard.20081dd6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/TarIO.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ContainerIO import ContainerIO 4 | 5 | class TarIO(ContainerIO): 6 | fh: Any 7 | def __init__(self, tarfile, file) -> None: ... 8 | def __enter__(self): ... 9 | def __exit__(self, *args) -> None: ... 10 | def close(self) -> None: ... 11 | -------------------------------------------------------------------------------- /ok-derby-frontend/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw* 22 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImageGrab.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .Image import Image, _Box 4 | 5 | def grab( 6 | bbox: _Box | None = ..., 7 | include_layered_windows: bool = ..., 8 | all_screens: bool = ..., 9 | xdisplay: Any | None = ..., 10 | ) -> Image: ... 11 | def grabclipboard() -> Image | None: ... 12 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImageSequence.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | class Iterator: 4 | im: Any 5 | position: Any 6 | def __init__(self, im) -> None: ... 7 | def __getitem__(self, ix): ... 8 | def __iter__(self): ... 9 | def __next__(self): ... 10 | 11 | def all_frames(im, func: Any | None = ...): ... 12 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/adb_shell.pyi: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # This typing file was generated by typing_from_help.py 3 | """ 4 | adb_shell - ADB shell functionality. 5 | 6 | """ 7 | 8 | import typing 9 | 10 | __all__: ... 11 | """ 12 | ['__builtins__', '__cached__', '__doc__', '__file__', '__loa... 13 | """ 14 | 15 | # version: None 16 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_custom-forms.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Custom form 3 | // 4 | 5 | @import "../core/custom-forms/custom-form"; 6 | @import "../core/custom-forms/custom-control"; 7 | @import "../core/custom-forms/custom-checkbox"; 8 | @import "../core/custom-forms/custom-radio"; 9 | @import "../core/custom-forms/custom-toggle"; 10 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue'; 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any>; 7 | export default component; 8 | } 9 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/DcxImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .PcxImagePlugin import PcxImageFile 4 | 5 | MAGIC: int 6 | 7 | class DcxImageFile(PcxImageFile): 8 | format: str 9 | format_description: str 10 | frame: Any 11 | fp: Any 12 | def seek(self, frame) -> None: ... 13 | def tell(self): ... 14 | -------------------------------------------------------------------------------- /ok-derby-backend/ok_derby_config.json: -------------------------------------------------------------------------------- 1 | {"ADB_ADDRESS": "", "use_legacy_screenshot": false, "ocr_data_path": "ocr_labels.json", "ocr_image_path": "", "ocr_prompt_disabled": false, "single_mode_target_training_levels": "5,3,3,0,1", "pause_if_race_order_gt": 5, "single_mode_race_data_path": "single_mode_races.jsonl", "single_mode_choice_path": "single_mode_choices.json"} -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/cards/_card-stats.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Card stats 3 | // 4 | 5 | .card-stats { 6 | .card-body { 7 | padding: 1rem 1.5rem; 8 | } 9 | 10 | .card-status-bullet { 11 | position: absolute; 12 | top: 0; 13 | right: 0; 14 | transform: translate(50%, -50%); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/components/Charts/optionHelpers.js: -------------------------------------------------------------------------------- 1 | // Parse global options 2 | export function parseOptions(parent, options) { 3 | for (let item in options) { 4 | if (typeof options[item] !== 'object') { 5 | parent[item] = options[item]; 6 | } else { 7 | parseOptions(parent[item], options[item]); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/Makefile: -------------------------------------------------------------------------------- 1 | __init__.py: *.png __init__.py.gotmpl 2 | # http://github.com/NateScarlet/gotmpl v0.2.0 3 | ls *.png | jq -nR 'reduce inputs as $$item ([]; . + [$$item]) | { Files: . }' | gotmpl -i - -o $@ __init__.py.gotmpl 4 | py -3.8 -m black -t py38 $@ 5 | 6 | 7 | %.pos.png: 8 | magick convert $@ -depth 1 $@ 9 | 10 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/components/stringUtils.js: -------------------------------------------------------------------------------- 1 | export function randomString(length = 7) { 2 | const possibleChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 3 | let text = ""; 4 | 5 | for (let i = 0; i < length; i++) 6 | text += possibleChars.charAt(Math.floor(Math.random() * possibleChars.length)); 7 | 8 | return text; 9 | } 10 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/item/__init__.py: -------------------------------------------------------------------------------- 1 | from . import game_data, label, plan 2 | from .effect import Effect 3 | from .history import History 4 | from .game_data import get 5 | from .globals import g 6 | from .item import Item 7 | from .item_list import ItemList 8 | from .label import from_name_image 9 | from .effect_summary import EffectSummary 10 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/type/_article.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Article 3 | // 4 | 5 | article { 6 | h4:not(:first-child), 7 | h5:not(:first-child) { 8 | margin-top: 3rem; 9 | } 10 | 11 | h4, h5 { 12 | margin-bottom: 1.5rem; 13 | } 14 | 15 | figure { 16 | margin: 3rem 0; 17 | } 18 | 19 | h5 + figure { 20 | margin-top: 0; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/WebPImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | SUPPORTED: bool 6 | 7 | class WebPImageFile(ImageFile): 8 | format: str 9 | format_description: str 10 | def seek(self, frame) -> None: ... 11 | fp: Any 12 | tile: Any 13 | def load(self): ... 14 | def tell(self): ... 15 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/BmpImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | BIT2MODE: Any 6 | 7 | class BmpImageFile(ImageFile): 8 | format_description: str 9 | format: str 10 | COMPRESSIONS: Any 11 | 12 | class DibImageFile(BmpImageFile): 13 | format: str 14 | format_description: str 15 | 16 | SAVE: Any 17 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | *.local 12 | 13 | # Editor directories and files 14 | .vscode/* 15 | !.vscode/extensions.json 16 | .idea 17 | .DS_Store 18 | *.suo 19 | *.ntvs* 20 | *.njsproj 21 | *.sln 22 | *.sw? 23 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/utilities/_helper.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Helper 3 | // helper classes for different cases 4 | // 5 | 6 | 7 | // Clearfix for sections that use float property 8 | 9 | .floatfix { 10 | &:before, 11 | &:after { 12 | content: ''; 13 | display: table; 14 | } 15 | &:after { 16 | clear: both; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/_binary.pyi: -------------------------------------------------------------------------------- 1 | def i8(c): ... 2 | def o8(i): ... 3 | def i16le(c, o: int = ...): ... 4 | def si16le(c, o: int = ...): ... 5 | def i32le(c, o: int = ...): ... 6 | def si32le(c, o: int = ...): ... 7 | def i16be(c, o: int = ...): ... 8 | def i32be(c, o: int = ...): ... 9 | def o16le(i): ... 10 | def o32le(i): ... 11 | def o16be(i): ... 12 | def o32be(i): ... 13 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/avatars/_avatar-group.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Avatar group 3 | // 4 | 5 | // General styles 6 | 7 | .avatar-group { 8 | .avatar { 9 | position: relative; 10 | z-index: 2; 11 | border: 2px solid $card-bg; 12 | 13 | &:hover { 14 | z-index: 3; 15 | } 16 | } 17 | 18 | .avatar + .avatar { 19 | margin-left: -1rem; 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/badges/_badge-circle.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Circle badge 3 | // 4 | 5 | 6 | // General styles 7 | 8 | .badge-circle { 9 | text-align: center; 10 | display: inline-flex; 11 | align-items: center; 12 | justify-content: center; 13 | border-radius: 50%; 14 | width: 2rem; 15 | height: 2rem; 16 | font-size: .875rem; 17 | } 18 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/mixins/_alert.scss: -------------------------------------------------------------------------------- 1 | @mixin alert-variant($background, $border, $color) { 2 | color: color-yiq($background); 3 | @include gradient-bg($background); 4 | border-color: $border; 5 | 6 | hr { 7 | border-top-color: darken($border, 5%); 8 | } 9 | 10 | .alert-link { 11 | color: darken($color, 10%); 12 | } 13 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "CommonJS", 4 | "target": "ES2019", 5 | "moduleResolution": "node", 6 | "forceConsistentCasingInFileNames": true, 7 | "esModuleInterop": true, 8 | "types": ["node"], 9 | "allowJs": true, 10 | "noEmit": true 11 | }, 12 | "include": ["*.ts", "scripts/*.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/cards/_card-blockquote.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Card with blockquote 3 | // 4 | 5 | .card-blockquote { 6 | padding: 2rem; 7 | position: relative; 8 | 9 | .svg-bg { 10 | display: block; 11 | width: 100%; 12 | height: 95px; 13 | position: absolute; 14 | top: -94px; 15 | left: 0; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/popovers/_popover.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Popover 3 | // 4 | 5 | 6 | .popover { 7 | border: 0; 8 | } 9 | 10 | .popover-header { 11 | font-weight: $font-weight-bold; 12 | } 13 | 14 | 15 | // Alternative colors 16 | 17 | @each $color, $value in $theme-colors { 18 | .popover-#{$color} { 19 | @include popover-variant($value); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | 4 | Vue.use(Vuex) 5 | 6 | const store = new Vuex.Store({ 7 | state: { 8 | log: "" 9 | }, 10 | mutations: { 11 | addLog(state, logStr) { 12 | state.log += logStr 13 | }, 14 | clearLog(state) { 15 | state.log = "" 16 | } 17 | } 18 | }) 19 | 20 | export default store -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/mixins/_badge.scss: -------------------------------------------------------------------------------- 1 | @mixin badge-variant($bg) { 2 | color: saturate(darken($bg, 10%), 10); 3 | background-color: transparentize(lighten($bg, 25%), .5); 4 | 5 | &[href] { 6 | @include hover-focus { 7 | color: color-yiq($bg); 8 | text-decoration: none; 9 | background-color: darken($bg, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/plugins/globalDirectives.js: -------------------------------------------------------------------------------- 1 | import clickOutside from "../directives/click-ouside.js"; 2 | 3 | /** 4 | * You can register global directives here and use them as a plugin in your main Vue instance 5 | */ 6 | 7 | const GlobalDirectives = { 8 | install(Vue) { 9 | Vue.directive("click-outside", clickOutside); 10 | } 11 | }; 12 | 13 | export default GlobalDirectives; 14 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/commands/__init__.py: -------------------------------------------------------------------------------- 1 | from ._from_context import from_context 2 | from .command import Command 3 | from .globals import g 4 | from .go_out import GoOutCommand 5 | from .health_care import HealthCareCommand 6 | from .race import RaceCommand 7 | from .rest import RestCommand 8 | from .sumer_rest import SummerRestCommand 9 | from .training import TrainingCommand 10 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/unknown.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | from .scene import Scene, SceneHolder 7 | 8 | 9 | class UnknownScene(Scene): 10 | @classmethod 11 | def name(cls): 12 | return "unknown" 13 | 14 | @classmethod 15 | def _enter(cls, ctx: SceneHolder) -> Scene: 16 | return cls() 17 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/FontFile.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | WIDTH: int 4 | 5 | def puti16(fp, values) -> None: ... 6 | 7 | class FontFile: 8 | bitmap: Any 9 | info: Any 10 | glyph: Any 11 | def __init__(self) -> None: ... 12 | def __getitem__(self, ix): ... 13 | ysize: Any 14 | metrics: Any 15 | def compile(self): ... 16 | def save(self, filename) -> None: ... 17 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/utilities/_transform.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Tranform 3 | // 4 | 5 | 6 | @include media-breakpoint-up(lg) { 7 | .transform-perspective-right { 8 | transform: scale(1) perspective(1040px) rotateY(-11deg) rotateX(2deg) rotate(2deg); 9 | } 10 | .transform-perspective-left{ 11 | transform: scale(1) perspective(2000px) rotateY(11deg) rotateX(2deg) rotate(-2deg) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/components/LogViewer/ItemDefault.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 16 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/components/LogViewer/ItemText.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 18 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/__init__.py: -------------------------------------------------------------------------------- 1 | from .command import CommandScene 2 | from .race_menu import RaceMenuScene, RaceTurnsIncorrect 3 | from .training import TrainingScene 4 | from .aoharu_battle_confirm import AoharuBattleConfirmScene 5 | from .aoharu_competitor import AoharuCompetitorScene 6 | from .aoharu_main import AoharuMainScene 7 | from .shop import ShopScene 8 | from .item_menu import ItemMenuScene 9 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/PsdImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | MODES: Any 6 | 7 | class PsdImageFile(ImageFile): 8 | format: str 9 | format_description: str 10 | mode: Any 11 | tile: Any 12 | frame: Any 13 | fp: Any 14 | def seek(self, layer): ... 15 | def tell(self): ... 16 | im: Any 17 | def load_prepare(self) -> None: ... 18 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/sound.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | from typing import Text 6 | import winsound 7 | 8 | 9 | def play_file(path: Text, wait_finish: bool = False) -> None: 10 | if not path: 11 | return 12 | winsound.PlaySound( 13 | path, 14 | winsound.SND_FILENAME | (0 if wait_finish else winsound.SND_ASYNC), 15 | ) 16 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/__snapshots__/aoharu_battle_confirm_test/test_recognize_predictions.aoharu_battle_confirm_menu_1.json: -------------------------------------------------------------------------------- 1 | { 2 | "predictions": { 3 | "RaceType.SPRINT": "RacePrediction.HONNMEI", 4 | "RaceType.MILE": "RacePrediction.HONNMEI", 5 | "RaceType.INTERMEDIATE": "RacePrediction.RENNSHITA", 6 | "RaceType.LONG": "RacePrediction.TAIKOU", 7 | "RaceType.DART": "RacePrediction.HONNMEI" 8 | } 9 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/__snapshots__/aoharu_battle_confirm_test/test_recognize_predictions.aoharu_battle_confirm_menu_2.json: -------------------------------------------------------------------------------- 1 | { 2 | "predictions": { 3 | "RaceType.SPRINT": "RacePrediction.HONNMEI", 4 | "RaceType.MILE": "RacePrediction.HONNMEI", 5 | "RaceType.INTERMEDIATE": "RacePrediction.HONNMEI", 6 | "RaceType.LONG": "RacePrediction.TAIKOU", 7 | "RaceType.DART": "RacePrediction.HONNMEI" 8 | } 9 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "env": { 4 | "node": true 5 | }, 6 | "extends": [ 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended", 9 | "plugin:prettier/recommended" 10 | ], 11 | "overrides": [ 12 | { 13 | "files": ["*.js"], 14 | "rules": { "@typescript-eslint/no-var-requires": "off" } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /ok-derby-backend/pack.cmd: -------------------------------------------------------------------------------- 1 | rmdir /s/q .\dist\main 2 | D:\Python\python38\python.exe -m PyInstaller main.spec 3 | xcopy .\auto_derby\templates .\dist\main\auto_derby\templates\ /s /f /h 4 | xcopy .\auto_derby\data .\dist\main\auto_derby\data\ /s /f /h 5 | xcopy .\auto_derby\web\dist .\dist\main\auto_derby\web\dist\ /s /f /h 6 | xcopy .\data .\dist\main\data\ /s /f /h 7 | xcopy ..\ok-derby-frontend\dist .\dist\main\frontend\dist\ /s /f /h 8 | md .\dist\main\log -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/IptcImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | COMPRESSION: Any 6 | PAD: Any 7 | 8 | def i(c): ... 9 | def dump(c) -> None: ... 10 | 11 | class IptcImageFile(ImageFile): 12 | format: str 13 | format_description: str 14 | def getint(self, key): ... 15 | def field(self): ... 16 | im: Any 17 | def load(self): ... 18 | 19 | def getiptcinfo(im): ... 20 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/pages/DefaultPage.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 18 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/limited_sale_buy_first_3.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | import auto_derby 7 | 8 | 9 | from auto_derby import limited_sale 10 | 11 | 12 | class Plugin(auto_derby.Plugin): 13 | def install(self) -> None: 14 | auto_derby.config.on_limited_sale = lambda: limited_sale.buy_first_n(3) 15 | 16 | 17 | auto_derby.plugin.register(__name__, Plugin()) 18 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ContainerIO.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | class ContainerIO: 4 | fh: Any 5 | pos: int 6 | offset: Any 7 | length: Any 8 | def __init__(self, file, offset, length) -> None: ... 9 | def isatty(self): ... 10 | def seek(self, offset, mode=...) -> None: ... 11 | def tell(self): ... 12 | def read(self, n: int = ...): ... 13 | def readline(self): ... 14 | def readlines(self): ... 15 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/WmfImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import StubImageFile 4 | 5 | def register_handler(handler) -> None: ... 6 | 7 | class WmfHandler: 8 | bbox: Any 9 | def open(self, im) -> None: ... 10 | def load(self, im): ... 11 | 12 | class WmfStubImageFile(StubImageFile): 13 | format: str 14 | format_description: str 15 | def load(self, dpi: Any | None = ...) -> None: ... 16 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/layout/Content.vue: -------------------------------------------------------------------------------- 1 | 9 | 17 | 18 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/limited_sale_buy_everything.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | import auto_derby 7 | 8 | 9 | from auto_derby import limited_sale 10 | 11 | 12 | class Plugin(auto_derby.Plugin): 13 | def install(self) -> None: 14 | auto_derby.config.on_limited_sale = lambda: limited_sale.buy_first_n(-1) 15 | 16 | 17 | auto_derby.plugin.register(__name__, Plugin()) 18 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/no_race_retry.py: -------------------------------------------------------------------------------- 1 | import auto_derby 2 | from auto_derby.single_mode import Context, RaceResult 3 | 4 | 5 | class Plugin(auto_derby.Plugin): 6 | def install(self) -> None: 7 | def _should_retry_race(ctx: Context, result: RaceResult) -> bool: 8 | return False 9 | 10 | auto_derby.config.single_mode_should_retry_race = _should_retry_race 11 | 12 | 13 | auto_derby.plugin.register(__name__, Plugin()) 14 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/race/globals.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | 7 | from typing import Tuple, Type, TYPE_CHECKING 8 | 9 | if TYPE_CHECKING: 10 | from .race import Race 11 | 12 | 13 | class g: 14 | data_path: str = "" 15 | result_path: str = "" 16 | result_max_bytes: int = 10 << 20 17 | races: Tuple[Race, ...] = () 18 | race_class: Type[Race] 19 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/__snapshots__/single_mode_option_test/test_match.event_options_issue129.json: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | [ 4 | 48, 5 | 714 6 | ] 7 | ], 8 | [ 9 | [ 10 | 48, 11 | 878 12 | ] 13 | ], 14 | [ 15 | [ 16 | 46, 17 | 1048 18 | ] 19 | ], 20 | [ 21 | [ 22 | 46, 23 | 1216 24 | ] 25 | ], 26 | [ 27 | [ 28 | 46, 29 | 1216 30 | ] 31 | ] 32 | ] -------------------------------------------------------------------------------- /ok-derby-frontend/src/components/Tabs/TabsLayout.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/composables/usePause.ts: -------------------------------------------------------------------------------- 1 | import type { Ref, UnwrapRef } from 'vue'; 2 | import { watch, ref } from 'vue'; 3 | 4 | export default function usePause( 5 | value: Ref, 6 | paused: Ref 7 | ): Ref> { 8 | const ret = ref(value.value); 9 | watch([value, paused], ([v, paused]) => { 10 | if (paused) { 11 | return; 12 | } 13 | ret.value = ref(v).value; 14 | }); 15 | return ret; 16 | } 17 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/afk.py: -------------------------------------------------------------------------------- 1 | import auto_derby 2 | 3 | 4 | class Plugin(auto_derby.Plugin): 5 | def install(self) -> None: 6 | auto_derby.config.pause_if_race_order_gt = 999 7 | auto_derby.plugin.install("no_ocr_prompt") 8 | auto_derby.plugin.install("no_event_prompt") 9 | auto_derby.plugin.install("no_item_prompt") 10 | auto_derby.plugin.install("auto_crane") 11 | 12 | 13 | auto_derby.plugin.register(__name__, Plugin()) 14 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/MpegImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | class BitStream: 6 | fp: Any 7 | bits: int 8 | bitbuffer: int 9 | def __init__(self, fp) -> None: ... 10 | def next(self): ... 11 | def peek(self, bits): ... 12 | def skip(self, bits) -> None: ... 13 | def read(self, bits): ... 14 | 15 | class MpegImageFile(ImageFile): 16 | format: str 17 | format_description: str 18 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/MpoImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .JpegImagePlugin import JpegImageFile 4 | 5 | class MpoImageFile(JpegImageFile): 6 | format: str 7 | format_description: str 8 | def load_seek(self, pos) -> None: ... 9 | fp: Any 10 | offset: Any 11 | tile: Any 12 | def seek(self, frame) -> None: ... 13 | def tell(self): ... 14 | @staticmethod 15 | def adopt(jpeg_instance, mpheader: Any | None = ...): ... 16 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/data/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | 7 | from typing import Text 8 | import os 9 | import sys 10 | 11 | __dirname__ = os.path.join(os.path.dirname(sys.executable), "auto_derby", "data") \ 12 | if hasattr(sys, "frozen") else os.path.dirname(os.path.abspath(__file__)) 13 | 14 | 15 | def path(*paths: Text) -> Text: 16 | return os.path.join(__dirname__, *paths) 17 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/race/__init__.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | from .game_data import ( 4 | find, 5 | find_by_date, 6 | find_by_race_detail_image, 7 | find_by_race_menu_image, 8 | reload, 9 | reload_on_demand, 10 | ) 11 | from .globals import g 12 | from .race import Race 13 | from .race_result import RaceResult 14 | from .history import History 15 | 16 | # Deprecated: remove at next major version 17 | LOGGER = logging.getLogger(__name__) 18 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/modals/_modal.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Modal 3 | // 4 | 5 | 6 | // Fluid modal 7 | 8 | .modal-fluid { 9 | .modal-dialog { 10 | margin-top: 0; 11 | margin-bottom: 0; 12 | } 13 | .modal-content { 14 | border-radius: 0; 15 | } 16 | } 17 | 18 | 19 | // Background color variations 20 | 21 | @each $color, $value in $theme-colors { 22 | .modal-#{$color} { 23 | @include modal-variant($value); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/services/index.ts: -------------------------------------------------------------------------------- 1 | import VueMessageService from '@/infrastructure/vue-message-service'; 2 | import type MessageService from '@/services/message'; 3 | 4 | export { MessageService }; 5 | export interface Application { 6 | message: MessageService; 7 | } 8 | export function defineApplication(v: Application): Application { 9 | return v; 10 | } 11 | 12 | const app = defineApplication({ 13 | message: new VueMessageService(), 14 | }); 15 | export default app; 16 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/services/cleanup.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | from typing import Callable, Protocol 6 | 7 | Callback = Callable[[], None] 8 | 9 | 10 | class Service(Protocol): 11 | def add(self, cb: Callback) -> None: 12 | ... 13 | 14 | def run(self) -> None: 15 | ... 16 | 17 | def __enter__(self) -> Service: 18 | ... 19 | 20 | def __exit__(self, *_) -> None: 21 | ... 22 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_mixins.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Mixins 3 | // 4 | 5 | // Bootstrap default mixins 6 | 7 | @import "~bootstrap/scss/mixins"; 8 | 9 | 10 | // Custom mixins 11 | 12 | @import "../core/mixins/alert"; 13 | @import "../core/mixins/badge"; 14 | @import "../core/mixins/background-variant"; 15 | @import "../core/mixins/buttons"; 16 | @import "../core/mixins/forms"; 17 | @import "../core/mixins/icon"; 18 | @import "../core/mixins/modals"; 19 | @import "../core/mixins/popover"; 20 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/templates/__snapshots__/single_mode_option_test/test_match.event_options_issue131.json: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | [ 4 | 24, 5 | 273 6 | ] 7 | ], 8 | [ 9 | [ 10 | 24, 11 | 355 12 | ] 13 | ], 14 | [ 15 | [ 16 | 23, 17 | 440 18 | ] 19 | ], 20 | [ 21 | [ 22 | 23, 23 | 524 24 | ], 25 | [ 26 | 23, 27 | 608 28 | ] 29 | ], 30 | [ 31 | [ 32 | 23, 33 | 608 34 | ] 35 | ] 36 | ] -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/composables/useTransform.ts: -------------------------------------------------------------------------------- 1 | import type { Ref } from 'vue'; 2 | import { computed } from 'vue'; 3 | 4 | export default function useTransform( 5 | value: Ref, 6 | transformGet: (v: TIn) => TOut, 7 | transformSet: (v: TOut) => TIn = (v) => v as unknown as TIn 8 | ) { 9 | return computed({ 10 | get() { 11 | return transformGet(value.value); 12 | }, 13 | set(v: TOut) { 14 | value.value = transformSet(v); 15 | }, 16 | }); 17 | } 18 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/utils/limitTextLength.ts: -------------------------------------------------------------------------------- 1 | export default function limitTextLength(s: string, maxLength: number): string { 2 | if (s.length <= maxLength) { 3 | return s; 4 | } 5 | 6 | const extraLength = s.length - maxLength; 7 | const extraLengthText = `(${extraLength} more)`; 8 | const extraLength2 = extraLength + extraLengthText.length; 9 | const extraLengthText2 = `(${extraLength2} more)`; 10 | return s.slice(0, maxLength - extraLengthText.length) + extraLengthText2; 11 | } 12 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | important: '#h', 3 | content: ['./src/**/*.{vue,ts}'], 4 | theme: { 5 | extend: { 6 | colors: { 7 | theme: { 8 | text: '#794016', 9 | green: '#99da08', 10 | toast: '#9da1b0', 11 | }, 12 | }, 13 | minHeight: { 14 | 12: '3rem', 15 | 16: '4rem', 16 | 32: '8rem', 17 | }, 18 | }, 19 | }, 20 | plugins: [require('@tailwindcss/forms')], 21 | }; 22 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/_imaging.pyi: -------------------------------------------------------------------------------- 1 | from collections.abc import Sequence 2 | from typing import Any 3 | from typing_extensions import Literal 4 | 5 | DEFAULT_STRATEGY: Literal[0] 6 | FILTERED: Literal[1] 7 | HUFFMAN_ONLY: Literal[2] 8 | RLE: Literal[3] 9 | FIXED: Literal[4] 10 | 11 | class _Path: 12 | def __getattr__(self, item: str) -> Any: ... # incomplete 13 | 14 | def path(__x: Sequence[tuple[float, float]] | Sequence[float]) -> _Path: ... 15 | def __getattr__(__name: str) -> Any: ... # incomplete 16 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/settings.ts: -------------------------------------------------------------------------------- 1 | export const isDevelopmentMode = import.meta.env.DEV; 2 | 3 | export const singleModeItemSearchShortcuts = [ 4 | 'スピード', 5 | 'スタミナ', 6 | 'パワー', 7 | '根性', 8 | '賢さ', 9 | 'メモ帳', 10 | '戦術書', 11 | '秘伝書', 12 | 'トレーニング', 13 | 'メガホン', 14 | 'ターン', 15 | 'ウェイト', 16 | '蹄鉄', 17 | 'バイタル', 18 | 'ドリンク', 19 | 'ケーキ', 20 | '絆ゲージ', 21 | 'やる気', 22 | '体力', 23 | 'になる', 24 | '解消', 25 | 'レース', 26 | '・', 27 | 'の', 28 | 'ー', 29 | 'ュ', 30 | 'ッ', 31 | ]; 32 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/imagetools_test.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from . import imagetools 3 | 4 | 5 | @pytest.mark.parametrize( 6 | "a,b,expected", 7 | [ 8 | (0, 0, 1), 9 | (0, 255, 0), 10 | ((0, 0, 0), (0, 0, 0), 1), 11 | ((0, 0, 0), (255, 255, 255), 0), 12 | ((0, 0, 0), (10, 10, 10), 0.9320764389188676), 13 | ((0, 0, 0), (10, 0, 0), 0.9607843137254902), 14 | ], 15 | ) 16 | def test_compare_color(a, b, expected): 17 | assert imagetools.compare_color(a, b) == expected 18 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/GimpGradientFile.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | EPSILON: float 4 | 5 | def linear(middle, pos): ... 6 | def curved(middle, pos): ... 7 | def sine(middle, pos): ... 8 | def sphere_increasing(middle, pos): ... 9 | def sphere_decreasing(middle, pos): ... 10 | 11 | SEGMENTS: Any 12 | 13 | class GradientFile: 14 | gradient: Any 15 | def getpalette(self, entries: int = ...): ... 16 | 17 | class GimpGradientFile(GradientFile): 18 | gradient: Any 19 | def __init__(self, fp) -> None: ... 20 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/type/_type.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Type 3 | // 4 | 5 | 6 | // Paragraphs 7 | 8 | p { 9 | font-size: $paragraph-font-size; 10 | font-weight: $paragraph-font-weight; 11 | line-height: $paragraph-line-height; 12 | } 13 | 14 | .lead { 15 | font-size: $lead-font-size; 16 | font-weight: $lead-font-weight; 17 | line-height: $paragraph-line-height; 18 | margin-top: 1.5rem; 19 | 20 | + .btn-wrapper { 21 | margin-top: 3rem; 22 | } 23 | } 24 | 25 | .description { 26 | font-size: $font-size-sm; 27 | } 28 | -------------------------------------------------------------------------------- /ok-derby-backend/utils/util.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import win32gui 4 | 5 | 6 | def is_game_running() -> bool: 7 | h_wnd = win32gui.FindWindow("UnityWndClass", "umamusume") 8 | if not h_wnd: 9 | return False 10 | else: 11 | return True 12 | 13 | 14 | def app_path() -> str: 15 | """Returns the base application path.""" 16 | if hasattr(sys, 'frozen'): 17 | # Handles PyInstaller 18 | return os.path.dirname(sys.executable) 19 | return os.path.join(os.path.dirname(__file__), "..") 20 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/mixins/_modals.scss: -------------------------------------------------------------------------------- 1 | @mixin modal-variant($background) { 2 | .modal-title { 3 | color: color-yiq($background); 4 | } 5 | .modal-header, 6 | .modal-footer { 7 | border-color: rgba(color-yiq($background), .075); 8 | } 9 | .modal-content { 10 | background-color: $background; 11 | color: color-yiq($background); 12 | 13 | .heading { 14 | color: color-yiq($background); 15 | } 16 | } 17 | 18 | .close { 19 | &>span:not(.sr-only) { 20 | color: $white; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/utilities/_position.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Position 3 | // modifier classes to be applied on an abosolute positioned element 4 | // use it next to .position-absolute class 5 | // 6 | 7 | @each $size, $value in $spacers { 8 | .top-#{$size} { 9 | top: $value; 10 | } 11 | .right-#{$size} { 12 | right: $value; 13 | } 14 | .bottom-#{$size} { 15 | bottom: $value; 16 | } 17 | .left-#{$size} { 18 | left: $value; 19 | } 20 | } 21 | 22 | .center { 23 | left: 50%; 24 | transform: translateX(-50%); 25 | } 26 | -------------------------------------------------------------------------------- /ok-derby-frontend/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ok-derby", 3 | "short_name": "ok-derby", 4 | "icons": [ 5 | { 6 | "src": "./img/icons/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "./img/icons/android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "start_url": "./index.html", 17 | "display": "standalone", 18 | "background_color": "#000000", 19 | "theme_color": "#4DBA87" 20 | } 21 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/utils/computedWith.ts: -------------------------------------------------------------------------------- 1 | import type { Ref, UnwrapRef } from 'vue'; 2 | import { ref, watch } from 'vue'; 3 | 4 | export default function computedWith< 5 | T extends Parameters[0], 6 | TResult 7 | >( 8 | source: T, 9 | cb: (v: T) => TResult, 10 | { deep }: { deep?: boolean } = {} 11 | ): Ref> { 12 | const ret = ref(cb(source)); 13 | watch( 14 | source, 15 | (v) => { 16 | ret.value = ref(cb(v)).value; 17 | }, 18 | { deep } 19 | ); 20 | return ret; 21 | } 22 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/limited_sale_ignore.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | import auto_derby 7 | 8 | 9 | from auto_derby import limited_sale 10 | 11 | 12 | class Plugin(auto_derby.Plugin): 13 | def install(self) -> None: 14 | auto_derby.config.on_limited_sale = lambda: limited_sale.ignore() 15 | 16 | 17 | auto_derby.plugin.register(__name__, Plugin()) 18 | 19 | # Deprecated: remove at next major version 20 | auto_derby.plugin.register("limited_sale_close", Plugin()) 21 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/go_out_test.py: -------------------------------------------------------------------------------- 1 | from typing import Text 2 | from .go_out import Option 3 | 4 | from .. import _test 5 | import pytest 6 | 7 | 8 | @pytest.mark.parametrize( 9 | "name", 10 | ("go_out_menu_1", "go_out_menu_2", "go_out_menu_3"), 11 | ) 12 | def test_from_menu(name: Text): 13 | img, _ = _test.use_screenshot(f"single_mode/{name}.png") 14 | res = Option.from_menu(img) 15 | 16 | res = sorted(res, key=lambda x: x.position[1]) 17 | _test.snapshot_match( 18 | res, 19 | name=name, 20 | ) 21 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/components/BaseHeader.vue: -------------------------------------------------------------------------------- 1 | 10 | 22 | 24 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/webview.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | 3 | # pyright: strict 4 | 5 | from __future__ import annotations 6 | 7 | import logging 8 | 9 | from typing import Protocol, Text 10 | 11 | _LOGGER = logging.getLogger(__name__) 12 | 13 | 14 | class Webview(Protocol): 15 | def open(self, url: Text) -> None: 16 | ... 17 | 18 | def shutdown(self) -> None: 19 | ... 20 | 21 | 22 | class NoOpWebview(Webview): 23 | def open(self, url: Text) -> None: 24 | pass 25 | 26 | def shutdown(self) -> None: 27 | pass 28 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImageTransform.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .Image import ImageTransformHandler 4 | 5 | class Transform(ImageTransformHandler): 6 | data: Any 7 | def __init__(self, data) -> None: ... 8 | def getdata(self): ... 9 | def transform(self, size, image, **options): ... 10 | 11 | class AffineTransform(Transform): 12 | method: Any 13 | 14 | class ExtentTransform(Transform): 15 | method: Any 16 | 17 | class QuadTransform(Transform): 18 | method: Any 19 | 20 | class MeshTransform(Transform): 21 | method: Any 22 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/conftest.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | """pytest configuration file, should not been imported""" 3 | 4 | import os 5 | import time 6 | import pytest 7 | 8 | from . import app 9 | from .infrastructure.web_log_service import WebLogService 10 | 11 | 12 | @pytest.fixture(autouse=True, scope="session", name="app") 13 | def _app(): 14 | with app.cleanup: 15 | if not os.getenv("CI"): 16 | app.log = WebLogService( 17 | app.cleanup, 18 | ) 19 | time.sleep(1) # wait browser 20 | yield app 21 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/custom/_utilities.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Utilities 3 | // 4 | 5 | @import "../core/utilities/backgrounds"; 6 | @import "../core/utilities/floating"; 7 | @import "../core/utilities/helper"; 8 | @import "../core/utilities/image"; 9 | @import "../core/utilities/opacity"; 10 | @import "../core/utilities/overflow"; 11 | @import "../core/utilities/position"; 12 | @import "../core/utilities/sizing"; 13 | @import "../core/utilities/spacing"; 14 | @import "../core/utilities/shadows"; 15 | @import "../core/utilities/text"; 16 | @import "../core/utilities/transform"; 17 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/training/globals.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | from typing import TYPE_CHECKING, Dict, Type 7 | 8 | from ...constants import TrainingType 9 | 10 | if TYPE_CHECKING: 11 | from .partner import Partner 12 | from .training import Training 13 | 14 | 15 | class g: 16 | training_class: Type[Training] 17 | partner_class: Type[Partner] 18 | target_levels: Dict[TrainingType, int] = {} 19 | 20 | # deprecated 21 | image_path: str = "" # replaced by web log 22 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/version_test.py: -------------------------------------------------------------------------------- 1 | from . import version 2 | 3 | 4 | def test_parse(): 5 | assert version.parse("") == (0, 0, 0, "") 6 | assert version.parse("invalid") == (0, 0, 0, "invalid") 7 | assert version.parse("1.0") == (0, 0, 0, "1.0") 8 | assert version.parse("0.1.2") == (0, 1, 2, "") 9 | assert version.parse("v0.1.2") == (0, 1, 2, "") 10 | assert version.parse("0.1.2-rc.1") == (0, 1, 2, "rc.1") 11 | assert version.parse("0.1.2-rc.1-build1") == (0, 1, 2, "rc.1-build1") 12 | 13 | 14 | def test_latest(): 15 | assert version.latest() 16 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/plugins/argon-dashboard.js: -------------------------------------------------------------------------------- 1 | import "@/assets/vendor/nucleo/css/nucleo.css"; 2 | import "@/assets/scss/argon.scss"; 3 | import globalComponents from "./globalComponents"; 4 | import globalDirectives from "./globalDirectives"; 5 | import SidebarPlugin from "@/components/SidebarPlugin/index" 6 | import NotificationPlugin from "@/components/NotificationPlugin/index" 7 | 8 | export default { 9 | install(Vue) { 10 | Vue.use(globalComponents); 11 | Vue.use(globalDirectives); 12 | Vue.use(SidebarPlugin); 13 | Vue.use(NotificationPlugin); 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/mathtools_test.py: -------------------------------------------------------------------------------- 1 | from . import mathtools 2 | 3 | 4 | def test_resize_proxy_issue71(): 5 | rp = mathtools.ResizeProxy(1080) 6 | 7 | res = rp.vector(-50, 466) 8 | assert res == -116, res 9 | 10 | 11 | def test_distance(): 12 | assert mathtools.distance((0,), (1,)) == 1 13 | assert mathtools.distance((0,), (-1,)) == 1 14 | assert mathtools.distance((0, 0), (1, 1)) == 1.4142135623730951 15 | assert mathtools.distance((0, 0), (-1, -1)) == 1.4142135623730951 16 | assert mathtools.distance((0, 0, 0), (1, 1, 1)) == 1.7320508075688772 17 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/context_test/test_update_by_class_detail.json: -------------------------------------------------------------------------------- 1 | { 2 | "date": [ 3 | 0, 4 | 0, 5 | 0 6 | ], 7 | "mood": "NORMAL", 8 | "scenario": "", 9 | "vitality": 0.0, 10 | "maxVitality": 100, 11 | "speed": 0, 12 | "stamina": 0, 13 | "power": 0, 14 | "guts": 0, 15 | "wisdom": 0, 16 | "fanCount": 1, 17 | "turf": "", 18 | "dart": "", 19 | "sprint": "", 20 | "mile": "", 21 | "intermediate": "", 22 | "long": "", 23 | "last": "", 24 | "middle": "", 25 | "head": "", 26 | "lead": "", 27 | "conditions": [] 28 | } -------------------------------------------------------------------------------- /ok-derby-backend/models/resp.py: -------------------------------------------------------------------------------- 1 | from typing import Optional, Union, Any 2 | 3 | 4 | class response: 5 | def __init__(self, 6 | rep_type: int, 7 | message: dict): 8 | pass 9 | 10 | @classmethod 11 | def ok(cls, data: Optional[Union[dict, str, Any]]) -> dict: 12 | return { 13 | "code": 0, 14 | "data": data 15 | } 16 | 17 | @classmethod 18 | def error(cls, data: Optional[Union[dict, str]]) -> dict: 19 | return { 20 | "code": -1, 21 | "data": data 22 | } 23 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/utilities/_shadows.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Shadows 3 | // 4 | 5 | // General styles 6 | [class*="shadow"] { 7 | @if $enable-transitions { 8 | transition: $transition-base; 9 | } 10 | } 11 | 12 | 13 | // Size variations 14 | .shadow-sm--hover:hover { 15 | box-shadow: $box-shadow-sm !important; 16 | } 17 | 18 | .shadow--hover:hover { 19 | box-shadow: $box-shadow !important; 20 | } 21 | 22 | .shadow-lg--hover:hover { 23 | box-shadow: $box-shadow-lg !important; 24 | } 25 | 26 | .shadow-none--hover:hover { 27 | box-shadow: none !important; 28 | } 29 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/context_test/test_update_by_class_detail_2.json: -------------------------------------------------------------------------------- 1 | { 2 | "date": [ 3 | 0, 4 | 0, 5 | 0 6 | ], 7 | "mood": "NORMAL", 8 | "scenario": "", 9 | "vitality": 0.0, 10 | "maxVitality": 100, 11 | "speed": 0, 12 | "stamina": 0, 13 | "power": 0, 14 | "guts": 0, 15 | "wisdom": 0, 16 | "fanCount": 1225, 17 | "turf": "", 18 | "dart": "", 19 | "sprint": "", 20 | "mile": "", 21 | "intermediate": "", 22 | "long": "", 23 | "last": "", 24 | "middle": "", 25 | "head": "", 26 | "lead": "", 27 | "conditions": [] 28 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/context_test/test_update_by_class_detail_3.json: -------------------------------------------------------------------------------- 1 | { 2 | "date": [ 3 | 0, 4 | 0, 5 | 0 6 | ], 7 | "mood": "NORMAL", 8 | "scenario": "", 9 | "vitality": 0.0, 10 | "maxVitality": 100, 11 | "speed": 0, 12 | "stamina": 0, 13 | "power": 0, 14 | "guts": 0, 15 | "wisdom": 0, 16 | "fanCount": 11950, 17 | "turf": "", 18 | "dart": "", 19 | "sprint": "", 20 | "mile": "", 21 | "intermediate": "", 22 | "long": "", 23 | "last": "", 24 | "middle": "", 25 | "head": "", 26 | "lead": "", 27 | "conditions": [] 28 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/context_test/test_update_by_class_detail_4.json: -------------------------------------------------------------------------------- 1 | { 2 | "date": [ 3 | 0, 4 | 0, 5 | 0 6 | ], 7 | "mood": "NORMAL", 8 | "scenario": "", 9 | "vitality": 0.0, 10 | "maxVitality": 100, 11 | "speed": 0, 12 | "stamina": 0, 13 | "power": 0, 14 | "guts": 0, 15 | "wisdom": 0, 16 | "fanCount": 148805, 17 | "turf": "", 18 | "dart": "", 19 | "sprint": "", 20 | "mile": "", 21 | "intermediate": "", 22 | "long": "", 23 | "last": "", 24 | "middle": "", 25 | "head": "", 26 | "lead": "", 27 | "conditions": [] 28 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/context_test/test_update_by_class_detail_5.json: -------------------------------------------------------------------------------- 1 | { 2 | "date": [ 3 | 0, 4 | 0, 5 | 0 6 | ], 7 | "mood": "NORMAL", 8 | "scenario": "", 9 | "vitality": 0.0, 10 | "maxVitality": 100, 11 | "speed": 0, 12 | "stamina": 0, 13 | "power": 0, 14 | "guts": 0, 15 | "wisdom": 0, 16 | "fanCount": 127591, 17 | "turf": "", 18 | "dart": "", 19 | "sprint": "", 20 | "mile": "", 21 | "intermediate": "", 22 | "long": "", 23 | "last": "", 24 | "middle": "", 25 | "head": "", 26 | "lead": "", 27 | "conditions": [] 28 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/context_test/test_update_by_class_detail_6.json: -------------------------------------------------------------------------------- 1 | { 2 | "date": [ 3 | 0, 4 | 0, 5 | 0 6 | ], 7 | "mood": "NORMAL", 8 | "scenario": "", 9 | "vitality": 0.0, 10 | "maxVitality": 100, 11 | "speed": 0, 12 | "stamina": 0, 13 | "power": 0, 14 | "guts": 0, 15 | "wisdom": 0, 16 | "fanCount": 121794, 17 | "turf": "", 18 | "dart": "", 19 | "sprint": "", 20 | "mile": "", 21 | "intermediate": "", 22 | "long": "", 23 | "last": "", 24 | "middle": "", 25 | "head": "", 26 | "lead": "", 27 | "conditions": [] 28 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "useDefineForClassFields": true, 5 | "module": "esnext", 6 | "moduleResolution": "node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "esModuleInterop": true, 12 | "isolatedModules": true, 13 | "baseUrl": ".", 14 | "lib": ["esnext", "dom"], 15 | "paths": { 16 | "@/*": ["./*"], 17 | "auto-derby/*": ["../../*"] 18 | } 19 | }, 20 | "include": ["**/*.vue", "**/*.ts"] 21 | } 22 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/infrastructure/no_op_log_service.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | from typing import Dict, Text 7 | 8 | from ..services.log import Image, Level, Service 9 | 10 | 11 | class NoOpService(Service): 12 | def text(self, msg: Text, /, *, level: Level = Level.INFO): 13 | pass 14 | 15 | def image( 16 | self, 17 | caption: Text, 18 | image: Image, 19 | *, 20 | level: Level = Level.INFO, 21 | layers: Dict[Text, Image] = {}, 22 | ): 23 | pass 24 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/context_test/test_update_by_class_detail_issue35.json: -------------------------------------------------------------------------------- 1 | { 2 | "date": [ 3 | 0, 4 | 0, 5 | 0 6 | ], 7 | "mood": "NORMAL", 8 | "scenario": "", 9 | "vitality": 0.0, 10 | "maxVitality": 100, 11 | "speed": 0, 12 | "stamina": 0, 13 | "power": 0, 14 | "guts": 0, 15 | "wisdom": 0, 16 | "fanCount": 1129, 17 | "turf": "", 18 | "dart": "", 19 | "sprint": "", 20 | "mile": "", 21 | "intermediate": "", 22 | "long": "", 23 | "last": "", 24 | "middle": "", 25 | "head": "", 26 | "lead": "", 27 | "conditions": [] 28 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/context_test/test_update_by_class_detail_issue35_2.json: -------------------------------------------------------------------------------- 1 | { 2 | "date": [ 3 | 0, 4 | 0, 5 | 0 6 | ], 7 | "mood": "NORMAL", 8 | "scenario": "", 9 | "vitality": 0.0, 10 | "maxVitality": 100, 11 | "speed": 0, 12 | "stamina": 0, 13 | "power": 0, 14 | "guts": 0, 15 | "wisdom": 0, 16 | "fanCount": 4119, 17 | "turf": "", 18 | "dart": "", 19 | "sprint": "", 20 | "mile": "", 21 | "intermediate": "", 22 | "long": "", 23 | "last": "", 24 | "middle": "", 25 | "head": "", 26 | "lead": "", 27 | "conditions": [] 28 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/__snapshots__/context_test/test_update_by_class_detail_issue86.json: -------------------------------------------------------------------------------- 1 | { 2 | "date": [ 3 | 0, 4 | 0, 5 | 0 6 | ], 7 | "mood": "NORMAL", 8 | "scenario": "", 9 | "vitality": 0.0, 10 | "maxVitality": 100, 11 | "speed": 0, 12 | "stamina": 0, 13 | "power": 0, 14 | "guts": 0, 15 | "wisdom": 0, 16 | "fanCount": 88556, 17 | "turf": "", 18 | "dart": "", 19 | "sprint": "", 20 | "mile": "", 21 | "intermediate": "", 22 | "long": "", 23 | "last": "", 24 | "middle": "", 25 | "head": "", 26 | "lead": "", 27 | "conditions": [] 28 | } -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/composables/useDebounced.ts: -------------------------------------------------------------------------------- 1 | import type { Ref } from 'vue'; 2 | import { computed } from 'vue'; 3 | import type { DebounceSettings } from 'lodash-es'; 4 | import { debounce } from 'lodash-es'; 5 | 6 | export default function useDebounced( 7 | value: Ref, 8 | wait?: number, 9 | options?: DebounceSettings 10 | ): Ref { 11 | return computed({ 12 | get() { 13 | return value.value; 14 | }, 15 | set: debounce( 16 | (v: T) => { 17 | value.value = v; 18 | }, 19 | wait, 20 | options 21 | ), 22 | }); 23 | } 24 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "backend": "http://localhost:12780", 3 | "availableJobs": [ 4 | { 5 | "name": "team_race" 6 | }, 7 | { 8 | "name": "champions_meeting" 9 | }, 10 | { 11 | "name": "legend_race" 12 | }, 13 | { 14 | "name": "nurturing" 15 | }, 16 | { 17 | "name": "daily_race_money" 18 | }, 19 | { 20 | "name": "daily_race_sp" 21 | }, 22 | { 23 | "name": "roulette_derby" 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImageTk.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | class PhotoImage: 4 | tk: Any 5 | def __init__( 6 | self, image: Any | None = ..., size: Any | None = ..., **kw 7 | ) -> None: ... 8 | def __del__(self) -> None: ... 9 | def width(self): ... 10 | def height(self): ... 11 | def paste(self, im, box: Any | None = ...) -> None: ... 12 | 13 | class BitmapImage: 14 | def __init__(self, image: Any | None = ..., **kw) -> None: ... 15 | def __del__(self) -> None: ... 16 | def width(self): ... 17 | def height(self): ... 18 | 19 | def getimage(photo): ... 20 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/PcfFontFile.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .FontFile import FontFile 4 | 5 | PCF_MAGIC: int 6 | PCF_PROPERTIES: Any 7 | PCF_ACCELERATORS: Any 8 | PCF_METRICS: Any 9 | PCF_BITMAPS: Any 10 | PCF_INK_METRICS: Any 11 | PCF_BDF_ENCODINGS: Any 12 | PCF_SWIDTHS: Any 13 | PCF_GLYPH_NAMES: Any 14 | PCF_BDF_ACCELERATORS: Any 15 | BYTES_PER_ROW: Any 16 | 17 | def sz(s, o): ... 18 | 19 | class PcfFontFile(FontFile): 20 | name: str 21 | charset_encoding: Any 22 | toc: Any 23 | fp: Any 24 | info: Any 25 | def __init__(self, fp, charset_encoding: str = ...) -> None: ... 26 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/shop_test.py: -------------------------------------------------------------------------------- 1 | from typing import Text 2 | 3 | from ... import _test 4 | from .shop import ShopScene 5 | from ...single_mode import Context 6 | import pytest 7 | 8 | 9 | @pytest.mark.parametrize( 10 | "name", 11 | tuple(i.stem for i in ((_test.DATA_PATH / "single_mode").glob("shop_scene_*.png"))), 12 | ) 13 | def test_recognize(name: Text): 14 | _test.use_screenshot(f"single_mode/{name}.png") 15 | scene = ShopScene() 16 | ctx = Context.new() 17 | scene.recognize(ctx, static=True) 18 | _test.snapshot_match( 19 | scene, 20 | name=name, 21 | ) 22 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/composables/usePolling.ts: -------------------------------------------------------------------------------- 1 | import useCleanup from '@/composables/useCleanup'; 2 | 3 | export default function usePolling( 4 | cb: () => Promise | void, 5 | scheduleNext: (next: () => void) => void = requestAnimationFrame 6 | ) { 7 | const { addCleanup } = useCleanup(); 8 | let isStopped = false; 9 | 10 | const stop = () => { 11 | isStopped = true; 12 | }; 13 | addCleanup(stop); 14 | 15 | const run = async () => { 16 | if (isStopped) { 17 | return; 18 | } 19 | await cb(); 20 | scheduleNext(run); 21 | }; 22 | run(); 23 | 24 | return { stop }; 25 | } 26 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/GifImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | class GifImageFile(ImageFile): 6 | format: str 7 | format_description: str 8 | global_palette: Any 9 | def data(self): ... 10 | @property 11 | def n_frames(self): ... 12 | @property 13 | def is_animated(self): ... 14 | im: Any 15 | def seek(self, frame) -> None: ... 16 | def tell(self): ... 17 | 18 | RAWMODE: Any 19 | 20 | def get_interlace(im): ... 21 | def getheader(im, palette: Any | None = ..., info: Any | None = ...): ... 22 | def getdata(im, offset=..., **params): ... 23 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/item/globals.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | from typing import TYPE_CHECKING, Dict, Text, Type 7 | 8 | from ... import data 9 | 10 | if TYPE_CHECKING: 11 | from .item import Item 12 | 13 | 14 | class g: 15 | data_path: Text = data.path("single_mode_items.jsonl") 16 | label_path: Text = "" 17 | item_class: Type[Item] 18 | name_label_similarity_threshold: Dict[int, float] = {} 19 | prompt_disabled = False 20 | explain_effect_summary = False 21 | explain_score = False 22 | default_plan_effort = 15.0 23 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/vendors/_headroom.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Headroom 3 | // 4 | 5 | 6 | .headroom { 7 | will-change: transform; 8 | background-color: inherit; 9 | @include transition($transition-base); 10 | } 11 | .headroom--pinned { 12 | @extend .position-fixed; 13 | transform: translateY(0%); 14 | } 15 | .headroom--unpinned { 16 | @extend .position-fixed; 17 | transform: translateY(-100%); 18 | } 19 | 20 | .headroom--not-top { 21 | padding-top: .5rem; 22 | padding-bottom: .5rem; 23 | background-color: theme-color("default") !important; 24 | box-shadow: 0 1px 10px rgba(130, 130, 134, 0.1); 25 | } 26 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/directives/click-ouside.js: -------------------------------------------------------------------------------- 1 | export default { 2 | bind: function(el, binding, vnode) { 3 | el.clickOutsideEvent = function(event) { 4 | // here I check that click was outside the el and his childrens 5 | if (!(el == event.target || el.contains(event.target))) { 6 | // and if it did, call method provided in attribute value 7 | vnode.context[binding.expression](event); 8 | } 9 | }; 10 | document.body.addEventListener("click", el.clickOutsideEvent); 11 | }, 12 | unbind: function(el) { 13 | document.body.removeEventListener("click", el.clickOutsideEvent); 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/item_menu_test.py: -------------------------------------------------------------------------------- 1 | from typing import Text 2 | 3 | from ... import _test 4 | from .item_menu import ItemMenuScene 5 | from ...single_mode import Context 6 | import pytest 7 | 8 | 9 | @pytest.mark.parametrize( 10 | "name", 11 | tuple(i.stem for i in ((_test.DATA_PATH / "single_mode").glob("item_menu_*.png"))), 12 | ) 13 | def test_recognize(name: Text): 14 | _test.use_screenshot(f"single_mode/{name}.png") 15 | scene = ItemMenuScene() 16 | ctx = Context.new() 17 | scene.recognize(ctx, static=True) 18 | _test.snapshot_match( 19 | scene, 20 | name=name, 21 | ) 22 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/composables/useCleanup.ts: -------------------------------------------------------------------------------- 1 | import { getCurrentInstance, onUnmounted } from 'vue'; 2 | 3 | export default function useCleanup(): { 4 | addCleanup: (cb: () => void) => void; 5 | cleanup: () => void; 6 | } { 7 | const callbacks: (() => void)[] = []; 8 | const addCleanup = (cb: () => void) => { 9 | callbacks.push(cb); 10 | }; 11 | const cleanup = () => { 12 | while (callbacks.length > 0) { 13 | callbacks.pop()?.(); 14 | } 15 | }; 16 | 17 | if (getCurrentInstance()) { 18 | onUnmounted(cleanup); 19 | } 20 | 21 | return { 22 | addCleanup, 23 | cleanup, 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/features.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | modules: Any 4 | 5 | def check_module(feature): ... 6 | def version_module(feature): ... 7 | def get_supported_modules(): ... 8 | 9 | codecs: Any 10 | 11 | def check_codec(feature): ... 12 | def version_codec(feature): ... 13 | def get_supported_codecs(): ... 14 | 15 | features: Any 16 | 17 | def check_feature(feature): ... 18 | def version_feature(feature): ... 19 | def get_supported_features(): ... 20 | def check(feature): ... 21 | def version(feature): ... 22 | def get_supported(): ... 23 | def pilinfo(out: Any | None = ..., supported_formats: bool = ...) -> None: ... 24 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/navs/_nav.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Nav 3 | // 4 | 5 | 6 | // Nav wrapper (container) 7 | 8 | // Nav wrapper 9 | .nav-wrapper { 10 | padding: 1rem 0; 11 | @include border-top-radius($card-border-radius); 12 | 13 | + .card { 14 | @include border-top-radius(0); 15 | @include border-bottom-radius($card-border-radius); 16 | } 17 | } 18 | 19 | 20 | // Nav links 21 | 22 | .nav-link { 23 | color: $nav-link-color; 24 | 25 | &:hover { 26 | color: $nav-link-hover-color; 27 | } 28 | 29 | i.ni { 30 | position: relative; 31 | top: 2px; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/pause_on_last_turn.py: -------------------------------------------------------------------------------- 1 | import auto_derby 2 | from auto_derby import terminal 3 | 4 | 5 | class Plugin(auto_derby.Plugin): 6 | """Pause on last turn, not work when start from year 4.""" 7 | 8 | def install(self) -> None: 9 | class Context(auto_derby.config.single_mode_context_class): 10 | def next_turn(self): 11 | super().next_turn() 12 | if self.turn_count() == self.total_turn_count(): 13 | terminal.pause(f"pause on last turn") 14 | 15 | auto_derby.config.single_mode_context_class = Context 16 | 17 | 18 | auto_derby.plugin.register(__name__, Plugin()) 19 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/pause_before_command.py: -------------------------------------------------------------------------------- 1 | from auto_derby.single_mode.commands.command import Command 2 | from auto_derby.single_mode.context import Context 3 | import auto_derby 4 | from auto_derby import terminal 5 | 6 | 7 | class Plugin(auto_derby.Plugin): 8 | def install(self) -> None: 9 | _next = auto_derby.config.on_single_mode_command 10 | 11 | def _on_command(ctx: Context, command: Command): 12 | terminal.pause(f"pause before command: {command.name()}") 13 | _next(ctx, command) 14 | 15 | auto_derby.config.on_single_mode_command = _on_command 16 | 17 | 18 | auto_derby.plugin.register(__name__, Plugin()) 19 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | COMMENT: str 6 | DATE: str 7 | EQUIPMENT: str 8 | FRAMES: str 9 | LUT: str 10 | NAME: str 11 | SCALE: str 12 | SIZE: str 13 | MODE: str 14 | TAGS: Any 15 | OPEN: Any 16 | split: Any 17 | 18 | def number(s): ... 19 | 20 | class ImImageFile(ImageFile): 21 | format: str 22 | format_description: str 23 | @property 24 | def n_frames(self): ... 25 | @property 26 | def is_animated(self): ... 27 | frame: Any 28 | fp: Any 29 | tile: Any 30 | def seek(self, frame) -> None: ... 31 | def tell(self): ... 32 | 33 | SAVE: Any 34 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/team_race/competitor_memu_test.py: -------------------------------------------------------------------------------- 1 | from typing import Text 2 | 3 | import pytest 4 | 5 | from ... import _test 6 | from .competitor_menu import CompetitorMenuScene 7 | 8 | 9 | @pytest.mark.parametrize( 10 | "name", 11 | tuple( 12 | i.stem for i in ((_test.DATA_PATH / "team_race").glob("competitor_menu_*.png")) 13 | ), 14 | ) 15 | def test_recognize(name: Text): 16 | _test.use_screenshot(f"team_race/{name}.png") 17 | scene = CompetitorMenuScene() 18 | granted_reward = scene.locate_granted_reward() 19 | _test.snapshot_match( 20 | dict(granted_reward=granted_reward), 21 | name=name, 22 | ) 23 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/app.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | """application wide dependencies.""" 4 | 5 | from __future__ import annotations 6 | 7 | from .infrastructure.cleanup_service import CleanupService as _DefaultCleanupService 8 | from .infrastructure.no_op_log_service import NoOpService as _DefaultLogService 9 | from .services.log import Level as LogLevel, Service as LogService 10 | from .services.cleanup import Service as CleanupService 11 | 12 | 13 | DEBUG = LogLevel.DEBUG 14 | INFO = LogLevel.INFO 15 | WARN = LogLevel.WARN 16 | ERROR = LogLevel.ERROR 17 | 18 | log: LogService = _DefaultLogService() 19 | cleanup: CleanupService = _DefaultCleanupService() 20 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/less_op.py: -------------------------------------------------------------------------------- 1 | import auto_derby 2 | from auto_derby import single_mode 3 | 4 | 5 | class Plugin(auto_derby.Plugin): 6 | """Use this after other plugin, reduce op/pre-op race score.""" 7 | 8 | def install(self) -> None: 9 | class Race(auto_derby.config.single_mode_race_class): 10 | def score(self, ctx: single_mode.Context) -> float: 11 | ret = super().score(ctx) 12 | if self.grade in (Race.GRADE_OP, Race.GRADE_PRE_OP): 13 | ret -= 10 14 | return ret 15 | 16 | auto_derby.config.single_mode_race_class = Race 17 | 18 | 19 | auto_derby.plugin.register(__name__, Plugin()) 20 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/command_test.py: -------------------------------------------------------------------------------- 1 | from typing import Text 2 | 3 | import pytest 4 | 5 | from ... import _test 6 | from ...single_mode import Context 7 | from .command import CommandScene 8 | 9 | 10 | @pytest.mark.parametrize( 11 | "name", 12 | tuple( 13 | i.stem for i in ((_test.DATA_PATH / "single_mode").glob("command_scene_*.png")) 14 | ), 15 | ) 16 | def test_recognize(name: Text): 17 | _test.use_screenshot(f"single_mode/{name}.png") 18 | scene = CommandScene() 19 | ctx = Context.new() 20 | scene.recognize(ctx, static=True) 21 | _test.snapshot_match( 22 | dict(ctx=ctx, scene=scene), 23 | name=name, 24 | ) 25 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/scenes/single_mode/go_out_menu_test.py: -------------------------------------------------------------------------------- 1 | from typing import Text 2 | from .go_out_menu import GoOutMenuScene 3 | 4 | from ... import _test 5 | import pytest 6 | 7 | from ...single_mode import Context 8 | 9 | 10 | @pytest.mark.parametrize( 11 | "name", 12 | tuple( 13 | i.stem for i in ((_test.DATA_PATH / "single_mode").glob("go_out_menu_*.png")) 14 | ), 15 | ) 16 | def test_recognize(name: Text): 17 | _test.use_screenshot(f"single_mode/{name}.png") 18 | ctx = Context.new() 19 | scene = GoOutMenuScene() 20 | scene.recognize(ctx) 21 | _test.snapshot_match( 22 | {"options": ctx.go_out_options}, 23 | name=name, 24 | ) 25 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/commands/command.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | from typing import Text 7 | from abc import ABC, abstractmethod 8 | from ..context import Context 9 | 10 | 11 | class Command(ABC): 12 | @abstractmethod 13 | def execute(self, ctx: Context) -> None: 14 | ... 15 | 16 | def __str__(self) -> str: 17 | return self.name() 18 | 19 | def name(self) -> Text: 20 | ret = self.__class__.__name__ 21 | if ret.endswith("Command"): 22 | ret = ret[:-7] 23 | return ret 24 | 25 | def score(self, ctx: Context) -> float: 26 | return 0 27 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/race/history.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | from typing import Iterator, List, Tuple 7 | 8 | from ..context import Context 9 | from .race import Race 10 | 11 | 12 | class History: 13 | def __init__(self) -> None: 14 | self._l: List[Tuple[int, Race]] = [] 15 | 16 | def append(self, ctx: Context, race: Race): 17 | self._l.append( 18 | ( 19 | ctx.turn_count_v2(), 20 | race, 21 | ) 22 | ) 23 | 24 | def iterate(self, *, last: int = 75) -> Iterator[Tuple[int, Race]]: 25 | yield from self._l[-last:] 26 | -------------------------------------------------------------------------------- /ok-derby-frontend/vue.config.js: -------------------------------------------------------------------------------- 1 | const webpack = require('webpack'); 2 | const isProd = process.env.NODE_ENV === "production"; 3 | 4 | module.exports = { 5 | configureWebpack: { 6 | // Set up all the aliases we use in our app. 7 | plugins: [ 8 | new webpack.optimize.LimitChunkCountPlugin({ 9 | maxChunks: 6 10 | }) 11 | ] 12 | }, 13 | pwa: { 14 | name: 'ok derby frontend', 15 | themeColor: '#172b4d', 16 | msTileColor: '#172b4d', 17 | appleMobileWebAppCapable: 'yes', 18 | appleMobileWebAppStatusBarStyle: '#172b4d' 19 | }, 20 | css: { 21 | // Enable CSS source maps. 22 | sourceMap: process.env.NODE_ENV !== 'production' 23 | } 24 | }; 25 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | auto-derby 8 | 11 | 12 | 13 | 19 |
20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/infrastructure/cleanup_service.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | from typing import List 7 | 8 | from ..services.cleanup import Callback, Service 9 | 10 | 11 | class CleanupService(Service): 12 | def __init__(self) -> None: 13 | self._callbacks: List[Callback] = [] 14 | 15 | def add(self, cb: Callback) -> None: 16 | self._callbacks.append(cb) 17 | 18 | def run(self) -> None: 19 | while self._callbacks: 20 | self._callbacks.pop()() 21 | 22 | def __enter__(self) -> Service: 23 | return self 24 | 25 | def __exit__(self, *_) -> None: 26 | self.run() 27 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/pause_before_race_continue.py: -------------------------------------------------------------------------------- 1 | from auto_derby.single_mode.commands.race import RaceResult 2 | from auto_derby.single_mode.context import Context 3 | import auto_derby 4 | from auto_derby import terminal 5 | 6 | 7 | class Plugin(auto_derby.Plugin): 8 | def install(self) -> None: 9 | _next = auto_derby.config.on_single_mode_race_result 10 | 11 | def _handle(ctx: Context, result: RaceResult): 12 | if result.is_failed: 13 | terminal.pause(f"pause before continue race: {result}") 14 | _next(ctx, result) 15 | 16 | auto_derby.config.on_single_mode_race_result = _handle 17 | 18 | 19 | auto_derby.plugin.register(__name__, Plugin()) 20 | -------------------------------------------------------------------------------- /ok-derby-backend/plugins/auto_crane.py: -------------------------------------------------------------------------------- 1 | import time 2 | 3 | import auto_derby 4 | from auto_derby import action, single_mode, templates 5 | 6 | 7 | def play(ctx: single_mode.Context): 8 | for duration in (2, 1.6, 1): 9 | _, pos = action.wait_image(templates.SINGLE_MODE_CRANE_GAME_BUTTON) 10 | time.sleep(3) 11 | _, pos = action.wait_image(templates.SINGLE_MODE_CRANE_GAME_BUTTON) 12 | action.swipe(pos, duration=duration) 13 | action.wait_tap_image(templates.GREEN_TIGHT_OK_BUTTON) 14 | 15 | 16 | class Plugin(auto_derby.Plugin): 17 | def install(self) -> None: 18 | auto_derby.config.on_single_mode_crane_game = play 19 | 20 | 21 | auto_derby.plugin.register(__name__, Plugin()) 22 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/IcoImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | class IcoFile: 6 | buf: Any 7 | entry: Any 8 | nb_items: Any 9 | def __init__(self, buf): ... 10 | def sizes(self): ... 11 | def getentryindex(self, size, bpp: bool = ...): ... 12 | def getimage(self, size, bpp: bool = ...): ... 13 | def frame(self, idx): ... 14 | 15 | class IcoImageFile(ImageFile): 16 | format: str 17 | format_description: str 18 | @property 19 | def size(self): ... 20 | @size.setter 21 | def size(self, value) -> None: ... 22 | im: Any 23 | mode: Any 24 | def load(self) -> None: ... 25 | def load_seek(self) -> None: ... 26 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/icons/_icon-shape.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Icon shape 3 | // 4 | 5 | 6 | .icon-shape { 7 | padding: 12px; 8 | text-align: center; 9 | display: inline-flex; 10 | align-items: center; 11 | justify-content: center; 12 | border-radius: 50%; 13 | 14 | 15 | i, svg { 16 | font-size: 1.25rem; 17 | } 18 | 19 | &.icon-lg { 20 | i, svg { 21 | font-size: 1.625rem; 22 | } 23 | } 24 | 25 | &.icon-sm { 26 | i, svg { 27 | font-size: .875rem; 28 | } 29 | } 30 | 31 | svg { 32 | width: 30px; 33 | height: 30px; 34 | } 35 | 36 | } 37 | 38 | @each $color, $value in $theme-colors { 39 | .icon-shape-#{$color} { 40 | @include icon-shape-variant(theme-color($color)); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/single_mode/training/history.py: -------------------------------------------------------------------------------- 1 | # -*- coding=UTF-8 -*- 2 | # pyright: strict 3 | 4 | from __future__ import annotations 5 | 6 | from typing import Iterator, List, Tuple 7 | 8 | from ..context import Context 9 | from .training import Training 10 | 11 | 12 | class History: 13 | def __init__(self) -> None: 14 | self._l: List[Tuple[int, Training]] = [] 15 | 16 | def append(self, ctx: Context, training: Training): 17 | self._l.append( 18 | ( 19 | ctx.turn_count_v2(), 20 | training, 21 | ) 22 | ) 23 | 24 | def iterate(self, *, last: int = 75) -> Iterator[Tuple[int, Training]]: 25 | yield from self._l[-last:] 26 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/utils/withLoading.ts: -------------------------------------------------------------------------------- 1 | import type { Ref } from 'vue'; 2 | 3 | export default function withLoading( 4 | loadingCount: Ref, 5 | fn: (...args: TArgs) => TReturn 6 | ): (...args: TArgs) => TReturn { 7 | return (...args) => { 8 | loadingCount.value += 1; 9 | let isAsync = false; 10 | try { 11 | const ret = fn(...args); 12 | if (ret instanceof Promise) { 13 | isAsync = true; 14 | ret.finally(() => { 15 | loadingCount.value -= 1; 16 | }); 17 | } 18 | return ret; 19 | } finally { 20 | if (!isAsync) { 21 | loadingCount.value -= 1; 22 | } 23 | } 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImageEnhance.pyi: -------------------------------------------------------------------------------- 1 | from .Image import Image 2 | 3 | class _Enhance: 4 | def enhance(self, factor: float) -> Image: ... 5 | 6 | class Color(_Enhance): 7 | image: Image 8 | intermediate_mode: str 9 | degenerate: Image 10 | def __init__(self, image: Image) -> None: ... 11 | 12 | class Contrast(_Enhance): 13 | image: Image 14 | degenerate: Image 15 | def __init__(self, image: Image) -> None: ... 16 | 17 | class Brightness(_Enhance): 18 | image: Image 19 | degenerate: Image 20 | def __init__(self, image: Image) -> None: ... 21 | 22 | class Sharpness(_Enhance): 23 | image: Image 24 | degenerate: Image 25 | def __init__(self, image: Image) -> None: ... 26 | -------------------------------------------------------------------------------- /ok-derby-backend/auto_derby/web/src/utils/addResizeListener.ts: -------------------------------------------------------------------------------- 1 | // spell-checker: words ponyfill 2 | import { ResizeObserver as ResizeObserverPonyfill } from '@juggle/resize-observer'; 3 | 4 | function getResizeObserver() { 5 | if (typeof ResizeObserver === 'undefined') { 6 | return ResizeObserverPonyfill; 7 | } 8 | return ResizeObserver; 9 | } 10 | 11 | export default function addResizeListener( 12 | el: Element, 13 | fn: (entry: ResizeObserverEntry) => void 14 | ): () => void { 15 | const Observer = getResizeObserver(); 16 | const ob = new Observer((entries): void => { 17 | entries.forEach((i) => { 18 | fn(i); 19 | }); 20 | }); 21 | ob.observe(el); 22 | return (): void => ob.disconnect(); 23 | } 24 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/assets/scss/core/utilities/_opacity.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Opacity 3 | // modify the transparency of an element with this quick modifier classes 4 | // 5 | 6 | .opacity-1 { 7 | opacity: .1 !important; 8 | } 9 | .opacity-2 { 10 | opacity: .2 !important; 11 | } 12 | .opacity-3 { 13 | opacity: .3 !important; 14 | } 15 | .opacity-4 { 16 | opacity: .4 !important; 17 | } 18 | .opacity-5 { 19 | opacity: .5 !important; 20 | } 21 | .opacity-6 { 22 | opacity: .6 !important; 23 | } 24 | .opacity-7 { 25 | opacity: .7 !important; 26 | } 27 | .opacity-8 { 28 | opacity: .8 !important; 29 | } 30 | .opacity-8 { 31 | opacity: .9 !important; 32 | } 33 | .opacity-10 { 34 | opacity: 1 !important; 35 | } 36 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/EpsImagePlugin.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from .ImageFile import ImageFile 4 | 5 | split: Any 6 | field: Any 7 | gs_windows_binary: Any 8 | 9 | def has_ghostscript(): ... 10 | def Ghostscript(tile, size, fp, scale: int = ...): ... 11 | 12 | class PSFile: 13 | fp: Any 14 | char: Any 15 | def __init__(self, fp) -> None: ... 16 | def seek(self, offset, whence=...) -> None: ... 17 | def readline(self): ... 18 | 19 | class EpsImageFile(ImageFile): 20 | format: str 21 | format_description: str 22 | mode_map: Any 23 | im: Any 24 | mode: Any 25 | tile: Any 26 | def load(self, scale: int = ...) -> None: ... 27 | def load_seek(self, *args, **kwargs) -> None: ... 28 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/components/BaseSwitch.vue: -------------------------------------------------------------------------------- 1 | 7 | 30 | 31 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/components/Charts/BarChart.js: -------------------------------------------------------------------------------- 1 | import { Bar, mixins } from 'vue-chartjs'; 2 | import globalOptionsMixin from "@/components/Charts/globalOptionsMixin"; 3 | 4 | export default { 5 | name: 'bar-chart', 6 | extends: Bar, 7 | mixins: [mixins.reactiveProp, globalOptionsMixin], 8 | props: { 9 | extraOptions: { 10 | type: Object, 11 | default: () => ({}) 12 | } 13 | }, 14 | data() { 15 | return { 16 | ctx: null 17 | }; 18 | }, 19 | mounted() { 20 | this.$watch( 21 | 'chartData', 22 | (newVal, oldVal) => { 23 | if (!oldVal) { 24 | this.renderChart(this.chartData, this.extraOptions); 25 | } 26 | }, 27 | { immediate: true } 28 | ); 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/components/Charts/LineChart.js: -------------------------------------------------------------------------------- 1 | import { Line, mixins } from 'vue-chartjs'; 2 | import globalOptionsMixin from "@/components/Charts/globalOptionsMixin"; 3 | 4 | export default { 5 | name: 'line-chart', 6 | extends: Line, 7 | mixins: [mixins.reactiveProp, globalOptionsMixin], 8 | props: { 9 | extraOptions: { 10 | type: Object, 11 | default: () => ({}) 12 | } 13 | }, 14 | data() { 15 | return { 16 | ctx: null 17 | }; 18 | }, 19 | mounted() { 20 | this.$watch( 21 | 'chartData', 22 | (newVal, oldVal) => { 23 | if (!oldVal) { 24 | this.renderChart(this.chartData, this.extraOptions); 25 | } 26 | }, 27 | { immediate: true } 28 | ); 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/components/Charts/PieChart.js: -------------------------------------------------------------------------------- 1 | import { Pie, mixins } from 'vue-chartjs'; 2 | import globalOptionsMixin from "@/components/Charts/globalOptionsMixin"; 3 | 4 | export default { 5 | name: 'pie-chart', 6 | extends: Pie, 7 | mixins: [mixins.reactiveProp, globalOptionsMixin], 8 | props: { 9 | extraOptions: { 10 | type: Object, 11 | default: () => ({}) 12 | } 13 | }, 14 | data() { 15 | return { 16 | ctx: null 17 | }; 18 | }, 19 | mounted() { 20 | this.$watch( 21 | 'chartData', 22 | (newVal, oldVal) => { 23 | if (!oldVal) { 24 | this.renderChart(this.chartData, this.extraOptions); 25 | } 26 | }, 27 | { immediate: true } 28 | ); 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /ok-derby-backend/typings/PIL/ImageQt.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | from typing_extensions import Literal 3 | 4 | from .Image import Image 5 | 6 | QImage = Any # imported from either of {PyQt6,PySide6,PyQt5,PySide2}.QtGui 7 | QPixmap = Any 8 | 9 | qt_versions: Any 10 | qt_is_installed: bool 11 | qt_version: Any 12 | 13 | def rgb(r: int, g: int, b: int, a: int = ...) -> int: ... 14 | def fromqimage(im: Image | QImage) -> Image: ... 15 | def fromqpixmap(im: Image | QImage) -> Image: ... 16 | def align8to32(bytes: bytes, width: int, mode: Literal["1", "L", "P"]) -> bytes: ... 17 | 18 | class ImageQt(QImage): # type: ignore 19 | def __init__(self, im: Image) -> None: ... 20 | 21 | def toqimage(im: Image) -> ImageQt: ... 22 | def toqpixmap(im: Image) -> QPixmap: ... 23 | -------------------------------------------------------------------------------- /ok-derby-frontend/src/components/Tabs/TabPane.vue: -------------------------------------------------------------------------------- 1 | 10 | 31 | 33 | --------------------------------------------------------------------------------