force_song.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/env python3
  2. """
  3. Copyright © 2023 Noah Vogt <noah@noahvogt.com>
  4. This program is free software: you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation, either version 3 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program. If not, see <http://www.gnu.org/licenses/>.
  14. """
  15. from sys import argv
  16. from utils import (
  17. error_msg,
  18. make_sure_file_exists,
  19. switch_to_song,
  20. )
  21. from input import validate_obs_song_scene_switcher_config
  22. import config as const
  23. # pylint: disable=inconsistent-return-statements
  24. def get_force_int() -> int:
  25. try:
  26. return int(argv[1])
  27. except IndexError:
  28. error_msg("couldn't parse force song integer")
  29. def exit_if_force_int_is_illegal():
  30. force_int = get_force_int()
  31. if force_int > const.OBS_MIN_SUBDIRS:
  32. error_msg("force integer too big")
  33. if force_int < 1:
  34. error_msg("force integer cannot be smaller than 1")
  35. if __name__ == "__main__":
  36. validate_obs_song_scene_switcher_config()
  37. make_sure_file_exists(const.NEXTSONG_CACHE_FILE)
  38. exit_if_force_int_is_illegal()
  39. switch_to_song(get_force_int())