Layout DT


SUBMITTED BY: terrorxdroid

DATE: March 27, 2024, 5:31 p.m.

UPDATED: Oct. 2, 2024, 8:18 p.m.

FORMAT: Text only

SIZE: 19.2 kB

HITS: 604

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>@DTUTORIAIS</title>
  7. <style>
  8. :root {
  9. font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
  10. line-height: 1.5;
  11. font-weight: 400;
  12. font-synthesis: none;
  13. text-rendering: optimizeLegibility;
  14. -webkit-font-smoothing: antialiased;
  15. -moz-osx-font-smoothing: grayscale;
  16. text-size-adjust: 100%;
  17. -webkit-text-size-adjust: 100%;
  18. --space-status-bar: 10px;
  19. --space-android-nav-bar: 33px;
  20. }
  21. @-webkit-keyframes onePulse {
  22. 0% {
  23. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  24. }
  25. 50% {
  26. box-shadow: 0px 0px 4px 8px rgba(255, 255, 255, 0.1);
  27. }
  28. 100% {
  29. box-shadow: 0px 0px 4px 4px rgba(255, 255, 255, 0.5);
  30. }
  31. }
  32. @keyframes onePulse {
  33. 0% {
  34. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  35. }
  36. 50% {
  37. box-shadow: 0px 0px 4px 8px rgba(255, 255, 255, 0.1);
  38. }
  39. 100% {
  40. box-shadow: 0px 0px 4px 4px rgba(255, 255, 255, 0.5);
  41. }
  42. }
  43. * {
  44. margin: 0;
  45. padding: 0;
  46. box-sizing: border-box;
  47. }
  48. html,
  49. body,
  50. main {
  51. width: 100%;
  52. height: 100%;
  53. }
  54. body {
  55. background: transparent;
  56. }
  57. section.home {
  58. width: 100%;
  59. height: 100%;
  60. display: flex;
  61. flex-direction: column;
  62. align-items: center;
  63. justify-content: space-between;
  64. padding: var(--space-status-bar) 10px var(--space-android-nav-bar) 10px;
  65. }
  66. section.home header {
  67. width: 100%;
  68. height: auto;
  69. display: flex;
  70. flex-direction: column;
  71. gap: 5px;
  72. }
  73. section.home header div.row {
  74. width: auto;
  75. height: auto;
  76. display: flex;
  77. gap: 10px;
  78. margin: 0px 0px 0px auto;
  79. }
  80. section.home header div.row button {
  81. width: 40px;
  82. height: 40px;
  83. display: flex;
  84. justify-content: center;
  85. align-items: center;
  86. border: 1px solid #00FF00;
  87. border-radius: 50%;
  88. box-shadow: 0px 0px 10px 0px rgba(255, 255, 255, 0.5);
  89. background: transparent;
  90. }
  91. section.home header div.row button svg {
  92. color: #00FF00;
  93. }
  94. section.home header div.row button:nth-child(1) svg {
  95. width: 20px;
  96. height: 20px;
  97. }
  98. section.home header div.row button:nth-child(4) svg {
  99. width: 20px;
  100. height: 20px;
  101. }
  102. section.home section {
  103. width: 100%;
  104. height: auto;
  105. display: flex;
  106. flex-direction: column;
  107. align-items: center;
  108. gap: 1rem;
  109. }
  110. section.home section div.container-local-ip {
  111. width: auto;
  112. height: auto;
  113. display: flex;
  114. align-items: center;
  115. justify-content: center;
  116. gap: 10px;
  117. padding: 10px 10%;
  118. border: 1px solid #00FF00;
  119. border-radius: 25px;
  120. background: rgba(0, 0, 0, 0.5);
  121. transition: all 0.3s ease 0.1s;
  122. }
  123. section.home section div.container-local-ip span {
  124. color: #00FF00;
  125. }
  126. section.home section div.container-tools {
  127. width: 100%;
  128. height: auto;
  129. display: flex;
  130. justify-content: center;
  131. position: relative;
  132. }
  133. section.home section div.container-tools button {
  134. display: flex;
  135. align-items: center;
  136. justify-content: center;
  137. gap: 8px;
  138. margin: auto 0px 0px 0px;
  139. padding: 10px 8%;
  140. border: 1px solid #00FF00;
  141. border-radius: 50px;
  142. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  143. color: #00FF00;
  144. background: rgba(0, 0, 0, 0.5);
  145. transition: all linear;
  146. }
  147. section.home section div.container-tools button svg {
  148. color: #00FF00;
  149. }
  150. section.home section div.container-tools ul {
  151. width: 90%;
  152. max-width: 300px;
  153. height: 55px;
  154. display: flex;
  155. align-items: center;
  156. justify-content: space-around;
  157. gap: 5px;
  158. position: absolute;
  159. top: -190%;
  160. padding: 0 5px;
  161. border: 1px solid #00FF00;
  162. border-radius: 50px;
  163. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  164. opacity: 0;
  165. transform: scale(0);
  166. transform-origin: bottom center;
  167. transition: all 0.3s ease 0.1s;
  168. background: rgba(0, 0, 0, 0.5);
  169. }
  170. section.home section div.container-tools ul li {
  171. width: 40px;
  172. height: 40px;
  173. display: flex;
  174. justify-content: center;
  175. align-items: center;
  176. border: 1px solid #00FF00;
  177. border-radius: 50%;
  178. box-shadow: 0px 0px 10px 0px rgba(255, 255, 255, 0.5);
  179. background: transparent;
  180. }
  181. @media (max-width: 320px) {
  182. section.home section div.container-tools ul li {
  183. width: 30px;
  184. height: 30px;
  185. display: flex;
  186. justify-content: center;
  187. align-items: center;
  188. border: 1px solid #00FF00;
  189. border-radius: 50%;
  190. box-shadow: 0px 0px 10px 0px rgba(255, 255, 255, 0.5);
  191. background: transparent;
  192. }
  193. section.home section div.container-tools ul li svg {
  194. transform: scale(0.9);
  195. }
  196. }
  197. section.home section div.container-tools ul li svg {
  198. color: #00FF00;
  199. }
  200. section.home section div.container-tools.active button {
  201. -webkit-animation: onePulse 0.6s forwards linear;
  202. animation: onePulse 0.6s forwards linear;
  203. }
  204. section.home section div.container-tools.active ul {
  205. opacity: 1;
  206. transform: scale(1);
  207. }
  208. .hidden {
  209. opacity: 0;
  210. visibility: hidden;
  211. }
  212. .display-none {
  213. display: none;
  214. }
  215. </style>
  216. </head>
  217. <body>
  218. <main>
  219. <section class="home">
  220. <header>
  221. <div class="row">
  222. <button type="button" title="Comprar Acesso" id="buy-access">
  223. <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
  224. stroke="currentColor">
  225. <path stroke-linecap="round" stroke-linejoin="round"
  226. d="M15.75 10.5V6a3.75 3.75 0 10-7.5 0v4.5m11.356-1.993l1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 01-1.12-1.243l1.264-12A1.125 1.125 0 015.513 7.5h12.974c.576 0 1.059.435 1.119 1.007zM8.625 10.5a.375.375 0 11-.75 0 .375.375 0 01.75 0zm7.5 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z" />
  227. </svg>
  228. </button>
  229. <button type="button" title="Suporte Whatsapp" id="whatsapp-support">
  230. <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-whatsapp"
  231. viewBox="0 0 16 16">
  232. <path
  233. d="M13.601 2.326A7.854 7.854 0 0 0 7.994 0C3.627 0 .068 3.558.064 7.926c0 1.399.366 2.76 1.057 3.965L0 16l4.204-1.102a7.933 7.933 0 0 0 3.79.965h.004c4.368 0 7.926-3.558 7.93-7.93A7.898 7.898 0 0 0 13.6 2.326zM7.994 14.521a6.573 6.573 0 0 1-3.356-.92l-.24-.144-2.494.654.666-2.433-.156-.251a6.56 6.56 0 0 1-1.007-3.505c0-3.626 2.957-6.584 6.591-6.584a6.56 6.56 0 0 1 4.66 1.931 6.557 6.557 0 0 1 1.928 4.66c-.004 3.639-2.961 6.592-6.592 6.592zm3.615-4.934c-.197-.099-1.17-.578-1.353-.646-.182-.065-.315-.099-.445.099-.133.197-.513.646-.627.775-.114.133-.232.148-.43.05-.197-.1-.836-.308-1.592-.985-.59-.525-.985-1.175-1.103-1.372-.114-.198-.011-.304.088-.403.087-.088.197-.232.296-.346.1-.114.133-.198.198-.33.065-.134.034-.248-.015-.347-.05-.099-.445-1.076-.612-1.47-.16-.389-.323-.335-.445-.34-.114-.007-.247-.007-.38-.007a.729.729 0 0 0-.529.247c-.182.198-.691.677-.691 1.654 0 .977.71 1.916.81 2.049.098.133 1.394 2.132 3.383 2.992.47.205.84.326 1.129.418.475.152.904.129 1.246.08.38-.058 1.171-.48 1.338-.943.164-.464.164-.86.114-.943-.049-.084-.182-.133-.38-.232z" />
  234. </svg>
  235. </button> </div>
  236. </header>
  237. <section>
  238. <div class="container-local-ip">
  239. <span>IP: 0.0.0.0</span>
  240. </div>
  241. <div class="container-tools">
  242. <button type="button" title="ferramentas">
  243. <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-nut-fill"
  244. viewBox="0 0 16 16">
  245. <path
  246. d="M4.58 1a1 1 0 0 0-.868.504l-3.428 6a1 1 0 0 0 0 .992l3.428 6A1 1 0 0 0 4.58 15h6.84a1 1 0 0 0 .868-.504l3.429-6a1 1 0 0 0 0-.992l-3.429-6A1 1 0 0 0 11.42 1H4.58zm5.018 9.696a3 3 0 1 1-3-5.196 3 3 0 0 1 3 5.196z" />
  247. </svg>
  248. <span>Ferramentas</span>
  249. </button>
  250. <ul>
  251. <li id="checkuser" title="Perfil">
  252. <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
  253. class="bi bi-person-fill" viewBox="0 0 16 16">
  254. <path d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z" />
  255. </svg>
  256. </li>
  257. <li id="battery" title="Bateria">
  258. <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
  259. class="bi bi-battery-half" viewBox="0 0 16 16">
  260. <path d="M2 6h5v4H2V6z" />
  261. <path
  262. d="M2 4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H2zm10 1a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h10zm4 3a1.5 1.5 0 0 1-1.5 1.5v-3A1.5 1.5 0 0 1 16 8z" />
  263. </svg>
  264. </li>
  265. <li id="apn" title="Configuração de nome de ponto de acesso (APN)">
  266. <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-wrench"
  267. viewBox="0 0 16 16">
  268. <path
  269. d="M.102 2.223A3.004 3.004 0 0 0 3.78 5.897l6.341 6.252A3.003 3.003 0 0 0 13 16a3 3 0 1 0-.851-5.878L5.897 3.781A3.004 3.004 0 0 0 2.223.1l2.141 2.142L4 4l-1.757.364L.102 2.223zm13.37 9.019.528.026.287.445.445.287.026.529L15 13l-.242.471-.026.529-.445.287-.287.445-.529.026L13 15l-.471-.242-.529-.026-.287-.445-.445-.287-.026-.529L11 13l.242-.471.026-.529.445-.287.287-.445.529-.026L13 11l.471.242z" />
  270. </svg>
  271. </li>
  272. <li id="clean-data-app" title="Limpar dados do app">
  273. <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
  274. class="bi bi-trash-fill" viewBox="0 0 16 16">
  275. <path
  276. d="M2.5 1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1H3v9a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V4h.5a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1H2.5zm3 4a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 .5-.5zM8 5a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7A.5.5 0 0 1 8 5zm3 .5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 1 0z" />
  277. </svg>
  278. </li>
  279. <li id="speedtest" title="teste de velocidade de internet">
  280. <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
  281. class="bi bi-speedometer2" viewBox="0 0 16 16">
  282. <path
  283. d="M8 4a.5.5 0 0 1 .5.5V6a.5.5 0 0 1-1 0V4.5A.5.5 0 0 1 8 4zM3.732 5.732a.5.5 0 0 1 .707 0l.915.914a.5.5 0 1 1-.708.708l-.914-.915a.5.5 0 0 1 0-.707zM2 10a.5.5 0 0 1 .5-.5h1.586a.5.5 0 0 1 0 1H2.5A.5.5 0 0 1 2 10zm9.5 0a.5.5 0 0 1 .5-.5h1.5a.5.5 0 0 1 0 1H12a.5.5 0 0 1-.5-.5zm.754-4.246a.389.389 0 0 0-.527-.02L7.547 9.31a.91.91 0 1 0 1.302 1.258l3.434-4.297a.389.389 0 0 0-.029-.518z" />
  284. <path fill-rule="evenodd"
  285. d="M0 10a8 8 0 1 1 15.547 2.661c-.442 1.253-1.845 1.602-2.932 1.25C11.309 13.488 9.475 13 8 13c-1.474 0-3.31.488-4.615.911-1.087.352-2.49.003-2.932-1.25A7.988 7.988 0 0 1 0 10zm8-7a7 7 0 0 0-6.603 9.329c.203.575.923.876 1.68.63C4.397 12.533 6.358 12 8 12s3.604.532 4.923.96c.757.245 1.477-.056 1.68-.631A7 7 0 0 0 8 3z" />
  286. </svg>
  287. </li>
  288. <li id="hotspot" title="Hotspot">
  289. <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" id="hotspot-on"
  290. class="bi bi-wifi" viewBox="0 0 16 16">
  291. <path
  292. d="M15.384 6.115a.485.485 0 0 0-.047-.736A12.444 12.444 0 0 0 8 3C5.259 3 2.723 3.882.663 5.379a.485.485 0 0 0-.048.736.518.518 0 0 0 .668.05A11.448 11.448 0 0 1 8 4c2.507 0 4.827.802 6.716 2.164.205.148.49.13.668-.049z" />
  293. <path
  294. d="M13.229 8.271a.482.482 0 0 0-.063-.745A9.455 9.455 0 0 0 8 6c-1.905 0-3.68.56-5.166 1.526a.48.48 0 0 0-.063.745.525.525 0 0 0 .652.065A8.46 8.46 0 0 1 8 7a8.46 8.46 0 0 1 4.576 1.336c.206.132.48.108.653-.065zm-2.183 2.183c.226-.226.185-.605-.1-.75A6.473 6.473 0 0 0 8 9c-1.06 0-2.062.254-2.946.704-.285.145-.326.524-.1.75l.015.015c.16.16.407.19.611.09A5.478 5.478 0 0 1 8 10c.868 0 1.69.201 2.42.56.203.1.45.07.61-.091l.016-.015zM9.06 12.44c.196-.196.198-.52-.04-.66A1.99 1.99 0 0 0 8 11.5a1.99 1.99 0 0 0-1.02.28c-.238.14-.236.464-.04.66l.706.706a.5.5 0 0 0 .707 0l.707-.707z" />
  295. </svg>
  296. <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" id="hotspot-off"
  297. class="bi bi-wifi-off display-none" viewBox="0 0 16 16">
  298. <path
  299. d="M10.706 3.294A12.545 12.545 0 0 0 8 3C5.259 3 2.723 3.882.663 5.379a.485.485 0 0 0-.048.736.518.518 0 0 0 .668.05A11.448 11.448 0 0 1 8 4c.63 0 1.249.05 1.852.148l.854-.854zM8 6c-1.905 0-3.68.56-5.166 1.526a.48.48 0 0 0-.063.745.525.525 0 0 0 .652.065 8.448 8.448 0 0 1 3.51-1.27L8 6zm2.596 1.404.785-.785c.63.24 1.227.545 1.785.907a.482.482 0 0 1 .063.745.525.525 0 0 1-.652.065 8.462 8.462 0 0 0-1.98-.932zM8 10l.933-.933a6.455 6.455 0 0 1 2.013.637c.285.145.326.524.1.75l-.015.015a.532.532 0 0 1-.611.09A5.478 5.478 0 0 0 8 10zm4.905-4.905.747-.747c.59.3 1.153.645 1.685 1.03a.485.485 0 0 1 .047.737.518.518 0 0 1-.668.05 11.493 11.493 0 0 0-1.811-1.07zM9.02 11.78c.238.14.236.464.04.66l-.707.706a.5.5 0 0 1-.707 0l-.707-.707c-.195-.195-.197-.518.04-.66A1.99 1.99 0 0 1 8 11.5c.374 0 .723.102 1.021.28zm4.355-9.905a.53.53 0 0 1 .75.75l-10.75 10.75a.53.53 0 0 1-.75-.75l10.75-10.75z" />
  300. </svg>
  301. </li>
  302. </ul>
  303. </div>
  304. </section>
  305. </section>
  306. </main>
  307. <!-- FUNÇÕES DO APP -->
  308. <script>
  309. const appStatusBar = () => DtGetStatusBarHeight.execute()
  310. const appNavBar = () => DtGetNavigationBarHeight.execute()
  311. const appCarrier = () => Android.getNetworkName()
  312. const appLocalIp = () => Android.getLocalIP()
  313. const appBattery = () => DtIgnoreBatteryOptimizations.execute()
  314. const appApn = () => DtStartApnActivity.execute()
  315. const appLink = (value) => DtStartWebViewActivity.execute(value)
  316. const appClean = () => DtCleanApp.execute()
  317. const appCheckUser = () => DtStartCheckUser.execute()
  318. const appGetStatusHotspot = () => DtGetStatusHotSpotService.execute()
  319. const appStartHotspot = () => DtStartHotSpotService.execute()
  320. const appStopHotspot = () => DtStopHotSpotService.execute()
  321. </script>
  322. <!-- DOM WRAPPER -->
  323. <script>
  324. const Dom = (selector) => {
  325. const _elements = document.querySelectorAll(selector)
  326. const wrapper = {
  327. on(listeners) {
  328. for (const [event, listener] of Object.entries(listeners)) {
  329. _elements.forEach((element) => {
  330. element.addEventListener(event, listener)
  331. })
  332. }
  333. return wrapper
  334. },
  335. toggleClass: (token, force) => {
  336. _elements.forEach((element) => {
  337. element.classList.toggle(token, force)
  338. })
  339. return wrapper
  340. },
  341. html(value) {
  342. _elements.forEach((element) => (element.innerHTML = value))
  343. return wrapper
  344. },
  345. }
  346. return wrapper
  347. }
  348. </script>
  349. <!-- VÁRIAVEIS -->
  350. <script>
  351. const buyAccess = Dom("#buy-access")
  352. const whatsappSupport = Dom("#whatsapp-support")
  353. const telegramSupport = Dom("#youtube")
  354. const group = Dom("#group")
  355. const containerLocalIp = Dom(
  356. "section.home section div.container-local-ip"
  357. )
  358. const localIp = Dom("section.home section div.container-local-ip span")
  359. const containerTools = Dom("section.home section div.container-tools")
  360. const toolsButton = Dom("section.home section div.container-tools button")
  361. const tools = Dom("section.home section div.container-tools ul")
  362. const hotspot = Dom("#hotspot")
  363. const checkuser = Dom("#checkuser")
  364. const battery = Dom("#battery")
  365. const apn = Dom("#apn")
  366. const CleanDataApp = Dom("#clean-data-app")
  367. const speedtest = Dom("#speedtest")
  368. const hotspotIconOn = Dom("#hotspot-on")
  369. const hotspotIconOff = Dom("#hotspot-off")
  370. </script>
  371. <!-- FUNÇÕES -->
  372. <script>
  373. document.documentElement.style.setProperty(
  374. "--space-status-bar",
  375. `${appStatusBar() + 10}px`
  376. )
  377. document.documentElement.style.setProperty(
  378. "--space-android-nav-bar",
  379. `${appNavBar() + 10}px`
  380. )
  381. const toggleTools = () => {
  382. containerLocalIp.toggleClass("hidden")
  383. containerTools.toggleClass("active")
  384. }
  385. const carrierNameAndLocalIp = () => {
  386. setInterval(() => {
  387. const carrierName = appCarrier()
  388. const carrierLocalIp = appLocalIp()
  389. if (!carrierName || !carrierLocalIp) {
  390. localIp.html("IP: 0.0.0.0")
  391. } else {
  392. localIp.html(`${carrierName}: ${carrierLocalIp}`)
  393. }
  394. }, 500)
  395. }
  396. carrierNameAndLocalIp()
  397. const startHotspot = () => {
  398. appStartHotspot()
  399. hotspotIconOff.toggleClass("display-none")
  400. hotspotIconOn.toggleClass("display-none")
  401. }
  402. const stopHotspot = () => {
  403. appStopHotspot()
  404. hotspotIconOn.toggleClass("display-none")
  405. hotspotIconOff.toggleClass("display-none")
  406. }
  407. const toggleHotspot = () => {
  408. appGetStatusHotspot() === "STOPPED" ? startHotspot() : stopHotspot()
  409. }
  410. </script>
  411. <!-- AÇÕES -->
  412. <script>
  413. buyAccess.on({
  414. click: () => appLink("https://abrir.link/yCuPfJ"),
  415. })
  416. whatsappSupport.on({ click: () => appLink("http://wa.me/5583997694893") })
  417. telegramSupport.on({ click: () => appLink("https://t.me/DARK_SKINNED") })
  418. group.on({ click: () => appLink("https://t.me/DARK_SKINNED") })
  419. toolsButton.on({ click: () => toggleTools() })
  420. hotspot.on({ click: () => toggleHotspot() })
  421. checkuser.on({ click: () => appCheckUser() })
  422. battery.on({ click: () => appBattery() })
  423. apn.on({ click: () => appApn() })
  424. CleanDataApp.on({ click: () => appClean() })
  425. speedtest.on({ click: () => appLink("https://fast.com") })
  426. </script>
  427. </body>
  428. </html>

comments powered by Disqus