USACO Language Selector

Automatically selects language to submit based on file extension

  1. // ==UserScript==
  2. // @name USACO Language Selector
  3. // @version 1.0
  4. // @description Automatically selects language to submit based on file extension
  5. // @match *usaco.org/index.php?page=viewproblem2&cpid=*
  6. // @namespace https://greasyfork.org/users/731318
  7. // ==/UserScript==
  8.  
  9. const fileExtensionToLanguage = {
  10. c: 0, //C
  11. cpp: 2, //C++11
  12. java: 3, //Java
  13. pas: 4, //Pascal
  14. py: 6, //Python 3.4.0
  15. }
  16.  
  17. const languageSelector = document.getElementsByName("language")[0]
  18. const fileSelector = document.getElementsByName("sourcefile")[0]
  19.  
  20. fileSelector.onchange = function () {
  21. const files = fileSelector.files
  22. if (files.length > 0) {
  23. const file = files[0]
  24. const name = file.name
  25. const extension = name.substr(name.lastIndexOf(".") + 1)
  26. if (extension.toLowerCase() in fileExtensionToLanguage) {
  27. languageSelector.selectedIndex = fileExtensionToLanguage[extension]
  28. }
  29. }
  30. }