HTTPheaders.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #ifndef HTTPHEADERS_H
  2. #define HTTPHEADERS_H
  3. #include "version.h"
  4. #include <QString>
  5. namespace http {
  6. extern QString HTML_PAGE;
  7. static QString HEADER_OK = "\
  8. HTTP/1.0 200 OK\r\n\
  9. Content-Type: text/html;\r\n\
  10. charset=\"utf-8\"\r\n\r\n";
  11. static QString HEADER_REJECT = "\
  12. HTTP/1.0 418 I'm a teapot\r\n\r\n";
  13. static QString FAVICON = " <link rel=\"shortcut icon\" href=\"data:image/x-icon;base64,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\" />\r\n";
  14. static QString NO_FAVICON = " <link rel=\"shortcut icon\" href=\"\">\r\n";
  15. static QString HTML_PAGE_SRC_1 = HEADER_OK + "\
  16. <!DOCTYPE html>\r\n\
  17. <html>\r\n\
  18. <head>\r\n\
  19. <meta charset=\"utf-8\">\r\n\
  20. <title>Mario DNS tool</title>\r\n";
  21. /* favicon is here */
  22. static QString HTML_PAGE_SRC_2 = "\
  23. <style>\r\n\
  24. {{STYLES}}\r\n\
  25. </style>\r\n\
  26. </head>\r\n\
  27. <body>\r\n\
  28. <div class=\"wrapper\">\r\n\
  29. <div class=\"inner_wrapper header\">\r\n\
  30. <div class=\"header_title\">\r\n\
  31. Mario DNS tool\r\n\
  32. </div>\r\n\
  33. </div>\r\n\
  34. <div class=\"inner_wrapper main\">\r\n\
  35. <div class=\"main__input\">\r\n\
  36. <form class=\"main__input_form\" method=\"get\">\r\n\
  37. <input class=\"main__input_line\" name=\"toConverting\" type=\"text\" placeholder=\"IPv6 address or domain\" autofocus><input class=\"main__input_button\" type=\"submit\" value=\"Send\">\r\n\
  38. </form>\r\n\
  39. </div>\r\n\
  40. <div class=\"main__info\">\r\n\
  41. <div class=\"main__info_field\">\r\n\
  42. {{TEXT}}\r\n\
  43. </div>\r\n\
  44. </div>\r\n\
  45. </div>\r\n\
  46. <div class=\"inner_wrapper footer\">\r\n\
  47. " + COPYRIGHT + " |&nbsp;<a href=\"https://notabug.org/acetone/mario-dns\" style=\"color: gray\">source code</a>\r\n\
  48. </div>\r\n\
  49. </div>\r\n\
  50. </body>\r\n\
  51. </html>\r\n\
  52. ";
  53. static QString CSS_DEFAULT = "\
  54. body {\r\n\
  55. font-family: monospace;\r\n\
  56. margin: 0;\r\n\
  57. padding: 0;\r\n\
  58. }\r\n\
  59. .wrapper {\r\n\
  60. height: 100vh;\r\n\
  61. display: flex;\r\n\
  62. flex-direction: column;\r\n\
  63. }\r\n\
  64. .inner_wrapper {\r\n\
  65. padding: 0 15%;\r\n\
  66. }\r\n\
  67. .header {\r\n\
  68. flex: 10%;\r\n\
  69. display: flex;\r\n\
  70. justify-content: space-around;\r\n\
  71. }\r\n\
  72. .header_title {\r\n\
  73. font-size: 44px;\r\n\
  74. padding-top: 1.25%;\r\n\
  75. }\r\n\
  76. .main {\r\n\
  77. flex: 83%;\r\n\
  78. height: 100vh;\r\n\
  79. display: flex;\r\n\
  80. flex-direction: column;\r\n\
  81. }\r\n\
  82. .main__input {\r\n\
  83. flex: 30%;\r\n\
  84. display: flex;\r\n\
  85. justify-content: space-around;\r\n\
  86. align-items: center;\r\n\
  87. }\r\n\
  88. .main__input_form {\r\n\
  89. height: 20%;\r\n\
  90. width: 100%;\r\n\
  91. white-space: nowrap;\r\n\
  92. }\r\n\
  93. .main__input_line {\r\n\
  94. font-family: monospace;\r\n\
  95. font-size: 24px;\r\n\
  96. height: 100%;\r\n\
  97. width: 86%;\r\n\
  98. }\r\n\
  99. .main__input_button {\r\n\
  100. font-family: monospace;\r\n\
  101. font-size: 24px;\r\n\
  102. color: darkgreen;\r\n\
  103. height: 110%;\r\n\
  104. width: 13%;\r\n\
  105. background: #73b06a;\r\n\
  106. border: none;\r\n\
  107. }\r\n\
  108. .main__input_button:hover {\r\n\
  109. background: #49a83b;\r\n\
  110. }\r\n\
  111. .main__info {\r\n\
  112. flex: 68%;\r\n\
  113. }\r\n\
  114. .main__info_field {\r\n\
  115. font-size: 22px;\r\n\
  116. border: 1px solid {{COLOR}};\r\n\
  117. padding: 2% 2%;\r\n\
  118. }\r\n\
  119. .footer {\r\n\
  120. font-size: 16px;\r\n\
  121. color: grey;\r\n\
  122. flex: 5%;\r\n\
  123. display: flex;\r\n\
  124. justify-content: center;\r\n\
  125. }\r\n\
  126. \r\n\
  127. @media (max-width: 750px) {\r\n\
  128. .inner_wrapper {\r\n\
  129. padding: 0%;\r\n\
  130. }\r\n\
  131. .main__input_form {\r\n\
  132. padding: 0 2%;\r\n\
  133. }\r\n\
  134. .main__info {\r\n\
  135. padding: 0 2%;\r\n\
  136. }\r\n\
  137. }\r\n\
  138. @media (max-height: 600px) {\r\n\
  139. .main__input_button {\r\n\
  140. height: 120%;\r\n\
  141. }\r\n\
  142. }";
  143. } // namespace
  144. #endif // HTTPHEADERS_H