├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── src ├── audios │ ├── tomanocupacero.mp3 │ └── tomanocupacero.ogg ├── cli.js ├── forWindows.jscript └── index.js └── tomanocupacero.jpeg /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | daledale.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Daniel Piva 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # tomanocupacero™️ 2 |
3 | 4 |
5 | 6 | > Tmnc pacero to chei de ódio [video](https://twitter.com/mcpozedorodo/status/1194809058194264064?lang=en) 7 | 8 | ## Compatibilidade 9 | 10 | - Mac 11 | - Linux 12 | - Windows 13 | 14 | ## Rodando com [npx](https://www.npmjs.com/package/npx) 15 | >O npx vem junto com o npm a partir da versão 5.2.0. 16 | 17 | Rode o comando: 18 | 19 | npx tomanocupacero 20 | 21 | 22 | ## Rodando via CLI 23 | Instale globalment e rode o comando: 24 | 25 | npm install -g tomanocupacero 26 | 27 | tomanocupacero 28 | 29 | 30 | ## Veja também 31 | 32 | - [Oloquinho](https://github.com/oloquinho/oloquinho) 33 | - [xFiles](https://github.com/BrOrlandi/xfiles/) 34 | - [Faustão Errou](https://github.com/BrOrlandi/faustao-errou/) 35 | - [Omaewa](https://github.com/BrOrlandi/omaewa/) 36 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tomanocuparcero", 3 | "version": "0.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.10.4", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", 10 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", 11 | "requires": { 12 | "@babel/highlight": "^7.10.4" 13 | } 14 | }, 15 | "@babel/helper-validator-identifier": { 16 | "version": "7.10.4", 17 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", 18 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" 19 | }, 20 | "@babel/highlight": { 21 | "version": "7.10.4", 22 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 23 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 24 | "requires": { 25 | "@babel/helper-validator-identifier": "^7.10.4", 26 | "chalk": "^2.0.0", 27 | "js-tokens": "^4.0.0" 28 | } 29 | }, 30 | "@types/minimist": { 31 | "version": "1.2.0", 32 | "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", 33 | "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=" 34 | }, 35 | "@types/normalize-package-data": { 36 | "version": "2.4.0", 37 | "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 38 | "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" 39 | }, 40 | "ansi-styles": { 41 | "version": "3.2.1", 42 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 43 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 44 | "requires": { 45 | "color-convert": "^1.9.0" 46 | } 47 | }, 48 | "arrify": { 49 | "version": "2.0.1", 50 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", 51 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" 52 | }, 53 | "camelcase": { 54 | "version": "6.0.0", 55 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz", 56 | "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==" 57 | }, 58 | "camelcase-keys": { 59 | "version": "6.2.2", 60 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", 61 | "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", 62 | "requires": { 63 | "camelcase": "^5.3.1", 64 | "map-obj": "^4.0.0", 65 | "quick-lru": "^4.0.1" 66 | }, 67 | "dependencies": { 68 | "camelcase": { 69 | "version": "5.3.1", 70 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 71 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" 72 | } 73 | } 74 | }, 75 | "chalk": { 76 | "version": "2.4.2", 77 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 78 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 79 | "requires": { 80 | "ansi-styles": "^3.2.1", 81 | "escape-string-regexp": "^1.0.5", 82 | "supports-color": "^5.3.0" 83 | } 84 | }, 85 | "color-convert": { 86 | "version": "1.9.3", 87 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 88 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 89 | "requires": { 90 | "color-name": "1.1.3" 91 | } 92 | }, 93 | "color-name": { 94 | "version": "1.1.3", 95 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 96 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 97 | }, 98 | "decamelize": { 99 | "version": "1.2.0", 100 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 101 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" 102 | }, 103 | "decamelize-keys": { 104 | "version": "1.1.0", 105 | "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", 106 | "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", 107 | "requires": { 108 | "decamelize": "^1.1.0", 109 | "map-obj": "^1.0.0" 110 | }, 111 | "dependencies": { 112 | "map-obj": { 113 | "version": "1.0.1", 114 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 115 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" 116 | } 117 | } 118 | }, 119 | "error-ex": { 120 | "version": "1.3.2", 121 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 122 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 123 | "requires": { 124 | "is-arrayish": "^0.2.1" 125 | } 126 | }, 127 | "escape-string-regexp": { 128 | "version": "1.0.5", 129 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 130 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 131 | }, 132 | "find-up": { 133 | "version": "4.1.0", 134 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 135 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 136 | "requires": { 137 | "locate-path": "^5.0.0", 138 | "path-exists": "^4.0.0" 139 | } 140 | }, 141 | "hard-rejection": { 142 | "version": "2.1.0", 143 | "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", 144 | "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" 145 | }, 146 | "has-flag": { 147 | "version": "3.0.0", 148 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 149 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 150 | }, 151 | "hosted-git-info": { 152 | "version": "2.8.8", 153 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", 154 | "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" 155 | }, 156 | "indent-string": { 157 | "version": "4.0.0", 158 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 159 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" 160 | }, 161 | "is-arrayish": { 162 | "version": "0.2.1", 163 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 164 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" 165 | }, 166 | "is-plain-obj": { 167 | "version": "1.1.0", 168 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 169 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" 170 | }, 171 | "js-tokens": { 172 | "version": "4.0.0", 173 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 174 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 175 | }, 176 | "json-parse-better-errors": { 177 | "version": "1.0.2", 178 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 179 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" 180 | }, 181 | "kind-of": { 182 | "version": "6.0.3", 183 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 184 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" 185 | }, 186 | "lines-and-columns": { 187 | "version": "1.1.6", 188 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", 189 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" 190 | }, 191 | "locate-path": { 192 | "version": "5.0.0", 193 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 194 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 195 | "requires": { 196 | "p-locate": "^4.1.0" 197 | } 198 | }, 199 | "map-obj": { 200 | "version": "4.1.0", 201 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", 202 | "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==" 203 | }, 204 | "meow": { 205 | "version": "7.0.1", 206 | "resolved": "https://registry.npmjs.org/meow/-/meow-7.0.1.tgz", 207 | "integrity": "sha512-tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw==", 208 | "requires": { 209 | "@types/minimist": "^1.2.0", 210 | "arrify": "^2.0.1", 211 | "camelcase": "^6.0.0", 212 | "camelcase-keys": "^6.2.2", 213 | "decamelize-keys": "^1.1.0", 214 | "hard-rejection": "^2.1.0", 215 | "minimist-options": "^4.0.2", 216 | "normalize-package-data": "^2.5.0", 217 | "read-pkg-up": "^7.0.1", 218 | "redent": "^3.0.0", 219 | "trim-newlines": "^3.0.0", 220 | "type-fest": "^0.13.1", 221 | "yargs-parser": "^18.1.3" 222 | } 223 | }, 224 | "min-indent": { 225 | "version": "1.0.1", 226 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 227 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" 228 | }, 229 | "minimist-options": { 230 | "version": "4.1.0", 231 | "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", 232 | "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", 233 | "requires": { 234 | "arrify": "^1.0.1", 235 | "is-plain-obj": "^1.1.0", 236 | "kind-of": "^6.0.3" 237 | }, 238 | "dependencies": { 239 | "arrify": { 240 | "version": "1.0.1", 241 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 242 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" 243 | } 244 | } 245 | }, 246 | "normalize-package-data": { 247 | "version": "2.5.0", 248 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 249 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 250 | "requires": { 251 | "hosted-git-info": "^2.1.4", 252 | "resolve": "^1.10.0", 253 | "semver": "2 || 3 || 4 || 5", 254 | "validate-npm-package-license": "^3.0.1" 255 | } 256 | }, 257 | "p-limit": { 258 | "version": "2.3.0", 259 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 260 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 261 | "requires": { 262 | "p-try": "^2.0.0" 263 | } 264 | }, 265 | "p-locate": { 266 | "version": "4.1.0", 267 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 268 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 269 | "requires": { 270 | "p-limit": "^2.2.0" 271 | } 272 | }, 273 | "p-try": { 274 | "version": "2.2.0", 275 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 276 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 277 | }, 278 | "parse-json": { 279 | "version": "5.0.1", 280 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz", 281 | "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==", 282 | "requires": { 283 | "@babel/code-frame": "^7.0.0", 284 | "error-ex": "^1.3.1", 285 | "json-parse-better-errors": "^1.0.1", 286 | "lines-and-columns": "^1.1.6" 287 | } 288 | }, 289 | "path-exists": { 290 | "version": "4.0.0", 291 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 292 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" 293 | }, 294 | "path-parse": { 295 | "version": "1.0.6", 296 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 297 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" 298 | }, 299 | "quick-lru": { 300 | "version": "4.0.1", 301 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", 302 | "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" 303 | }, 304 | "read-pkg": { 305 | "version": "5.2.0", 306 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", 307 | "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", 308 | "requires": { 309 | "@types/normalize-package-data": "^2.4.0", 310 | "normalize-package-data": "^2.5.0", 311 | "parse-json": "^5.0.0", 312 | "type-fest": "^0.6.0" 313 | }, 314 | "dependencies": { 315 | "type-fest": { 316 | "version": "0.6.0", 317 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", 318 | "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" 319 | } 320 | } 321 | }, 322 | "read-pkg-up": { 323 | "version": "7.0.1", 324 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", 325 | "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", 326 | "requires": { 327 | "find-up": "^4.1.0", 328 | "read-pkg": "^5.2.0", 329 | "type-fest": "^0.8.1" 330 | }, 331 | "dependencies": { 332 | "type-fest": { 333 | "version": "0.8.1", 334 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 335 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" 336 | } 337 | } 338 | }, 339 | "redent": { 340 | "version": "3.0.0", 341 | "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", 342 | "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", 343 | "requires": { 344 | "indent-string": "^4.0.0", 345 | "strip-indent": "^3.0.0" 346 | } 347 | }, 348 | "resolve": { 349 | "version": "1.17.0", 350 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", 351 | "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", 352 | "requires": { 353 | "path-parse": "^1.0.6" 354 | } 355 | }, 356 | "semver": { 357 | "version": "5.7.1", 358 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 359 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 360 | }, 361 | "spdx-correct": { 362 | "version": "3.1.1", 363 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", 364 | "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", 365 | "requires": { 366 | "spdx-expression-parse": "^3.0.0", 367 | "spdx-license-ids": "^3.0.0" 368 | } 369 | }, 370 | "spdx-exceptions": { 371 | "version": "2.3.0", 372 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", 373 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" 374 | }, 375 | "spdx-expression-parse": { 376 | "version": "3.0.1", 377 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 378 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 379 | "requires": { 380 | "spdx-exceptions": "^2.1.0", 381 | "spdx-license-ids": "^3.0.0" 382 | } 383 | }, 384 | "spdx-license-ids": { 385 | "version": "3.0.5", 386 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", 387 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" 388 | }, 389 | "strip-indent": { 390 | "version": "3.0.0", 391 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 392 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 393 | "requires": { 394 | "min-indent": "^1.0.0" 395 | } 396 | }, 397 | "supports-color": { 398 | "version": "5.5.0", 399 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 400 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 401 | "requires": { 402 | "has-flag": "^3.0.0" 403 | } 404 | }, 405 | "trim-newlines": { 406 | "version": "3.0.0", 407 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", 408 | "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==" 409 | }, 410 | "type-fest": { 411 | "version": "0.13.1", 412 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", 413 | "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" 414 | }, 415 | "validate-npm-package-license": { 416 | "version": "3.0.4", 417 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 418 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 419 | "requires": { 420 | "spdx-correct": "^3.0.0", 421 | "spdx-expression-parse": "^3.0.0" 422 | } 423 | }, 424 | "yargs-parser": { 425 | "version": "18.1.3", 426 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", 427 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", 428 | "requires": { 429 | "camelcase": "^5.0.0", 430 | "decamelize": "^1.2.0" 431 | }, 432 | "dependencies": { 433 | "camelcase": { 434 | "version": "5.3.1", 435 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 436 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" 437 | } 438 | } 439 | } 440 | } 441 | } 442 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tomanocupacero", 3 | "version": "0.0.4", 4 | "description": "Toma no cu pacero eu to chei de odio", 5 | "main": "src/cli.js", 6 | "scripts": { 7 | "start": "node src/cli.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+ssh://git@github.com/imdanielpiva/tomanocupacero.git" 12 | }, 13 | "keywords": [ 14 | "mc", 15 | "poze" 16 | ], 17 | "author": "Daniel Piva ", 18 | "license": "MIT", 19 | "bin": { 20 | "tomanocupacero": "./src/cli.js" 21 | }, 22 | "bugs": { 23 | "url": "https://github.com/imdanielpiva/tomanocupacero/issues" 24 | }, 25 | "homepage": "https://github.com/imdanielpiva/tomanocupacero#readme", 26 | "dependencies": { 27 | "meow": "^7.0.1" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/audios/tomanocupacero.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imdanielpiva/tomanocupacero/b907deb8dacf3710951eaf1197d984337ee70d45/src/audios/tomanocupacero.mp3 -------------------------------------------------------------------------------- /src/audios/tomanocupacero.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imdanielpiva/tomanocupacero/b907deb8dacf3710951eaf1197d984337ee70d45/src/audios/tomanocupacero.ogg -------------------------------------------------------------------------------- /src/cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const meow = require('meow'); 4 | const tomaNoCuPacero = require('./index') 5 | 6 | // TODO: when tail call optimization is implemented on NodeJS, simplify this. 7 | const cliMode = async ({ flags }) => { 8 | while(true) await tomaNoCuPacero(); 9 | }; 10 | 11 | const cliInterface = meow({}); 12 | 13 | cliMode(cliInterface); -------------------------------------------------------------------------------- /src/forWindows.jscript: -------------------------------------------------------------------------------- 1 | var file = WScript.Arguments.Item(0); 2 | 3 | var fileSystemObject = new ActiveXObject("Scripting.FileSystemObject"); 4 | var absoluteFilePath = fileSystemObject.GetAbsolutePathName(file); 5 | 6 | var player = new ActiveXObject("WMPlayer.OCX"); 7 | player.URL = absoluteFilePath; 8 | player.controls.play(); 9 | 10 | while(player.playState!=1) 11 | WScript.Sleep(100); 12 | 13 | player.close(); -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | const { promisify } = require('util'); 4 | const { exec } = require('child_process'); 5 | 6 | const execPromise = promisify(exec); 7 | 8 | const mainPath = path.dirname(fs.realpathSync(__filename)); 9 | const windowsScript = path.join(mainPath, './forWindows.jscript'); 10 | const soundPath = path.join(mainPath, './audios/tomanocupacero'); 11 | 12 | const tomaNoCuParcero = () => { 13 | const commandsForEachPlatform = { 14 | linux: `paplay ${soundPath}.ogg`, 15 | darwin: `afplay ${soundPath}.mp3`, 16 | win32: `cscript /E:JScript /nologo "${windowsScript}" "${soundPath}.mp3"`, 17 | }; 18 | 19 | const platform = process.platform; 20 | const codeToExecute = commandsForEachPlatform[platform]; 21 | 22 | return execPromise(codeToExecute); 23 | }; 24 | 25 | module.exports = tomaNoCuParcero; -------------------------------------------------------------------------------- /tomanocupacero.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imdanielpiva/tomanocupacero/b907deb8dacf3710951eaf1197d984337ee70d45/tomanocupacero.jpeg --------------------------------------------------------------------------------