├── LICENSE ├── README.md ├── _0applauncher,--.desktop.application.launcher ├── _calculator,--.math.calculation ├── _chromium-history,--.open.chromiun.browser.history.in.new.tab ├── _clipmenu,--.simple.clipboard.manager ├── _cmus,--.control.music.player ├── _compose,--.copy.characters.to.clipboard ├── _derez,--.restore.or.empty.trash ├── _emoji,--.copy.emojis.to.clipboard ├── _fkill,--.process.killer ├── _fman,--.man.pages ├── _ipwebtv,--.watch.internet.tv.channels ├── _locate,--.search.local.files.and.open ├── _notekami,--.notes.cheatsheet.snippets.manager ├── _playerctl,--.mpris.players.media.control ├── _pulseaudio,--.volume.control ├── _radiomhysa,--.play.internet.radio ├── _reverbeats,--.loop.ambient.sound ├── _variety,--.wallpaper.changer ├── _window-switcher,--.jump.to.a.running.window ├── _zinger,--.copy.meme.quotes.to.clipboard └── fzf-nova /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fzf-nova 2 | - using terminal emulator + fzf as a script launcher, replacement for dmenu or rofi 3 | - demo https://www.youtube.com/watch?v=8SqakfCSzQk 4 | 5 | #### pick a terminal command to bind to a hotkey (e.g super+space): 6 | 7 | ## source bashrc to get $PATH and $EDITOR variable 8 | # if fzf-nova is NOT in your $PATH then include the script location 9 | xterm -T fzf-nova -geometry 120x20+300+300 -fs 14 -e bash -c "source ~/.bashrc &>/dev/null && /path/to/fzf-nova" 10 | xfce4-terminal --title fzf-nova --geometry 120x20+350+300 --font 14 --execute bash -c "source ~/.bashrc &>/dev/null && /path/to/fzf-nova" 11 | alacritty -T fzf-nova -o "window.dimensions.columns=90" "window.dimensions.lines=20" "window.position.x=350" "window.position.y=200" -e bash -c "source ~/.bashrc &>/dev/null && /path/to/fzf-nova" 12 | 13 | # if fzf-nova is already in your bash $PATH 14 | xterm -T fzf-nova -geometry 120x20+300+300 -fs 14 -e bash -c "source ~/.bashrc &>/dev/null && fzf-nova" 15 | xfce4-terminal --title fzf-nova --geometry 120x20+350+300 --font 14 --execute bash -c "source ~/.bashrc &>/dev/null && fzf-nova" 16 | alacritty -T fzf-nova -o "window.dimensions.columns=90" "window.dimensions.lines=20" "window.position.x=350" "window.position.y=200" -e bash -c "source ~/.bashrc &>/dev/null && fzf-nova" 17 | 18 | #### for TMUX users (prefix + TAB to activate popup) 19 | bind-key Tab capture-pane \; save-buffer /tmp/tmux-buffer \; delete-buffer \; display-popup -w 80% -h 60% -E "fzf-nova" 20 | or 21 | bind-key Tab capture-pane \; save-buffer /tmp/tmux-buffer \; delete-buffer \; display-popup -w 80% -h 60% -E "/path/to/fzf-nova" 22 | 23 | 24 | #### for SHELL hotkey (e.g Alt+m to activate) 25 | # bashrc 26 | bind -x '"\em": fzf-nova' 27 | or 28 | bind -x '"\em": path/to/fzf-nova' 29 | 30 | # zshrc 31 | __fzf_nova__() { 32 | fzf-nova 33 | # or 34 | # /path/to/fzf-nova 35 | } 36 | zle -N __fzf_nova__ 37 | bindkey -M emacs '^[m' __fzf_nova__ 38 | bindkey -M vicmd '^[m' __fzf_nova__ 39 | bindkey -M viins '^[m' __fzf_nova__ 40 | 41 | #### add your own script 42 | - just drop in a script in the same folder as fzf-nova. 43 | - name it e.g: _myamazingscript,--.a.cool.description 44 | 45 | #### showcase 46 | - notekami: https://youtu.be/qwpK4rqAZwA 47 | - radiomhysa: https://youtu.be/yfREdXs4H5o 48 | - clipmenu: https://youtu.be/9-4boJ9krsY 49 | - zinger: https://youtu.be/YGsq4ogwmBk 50 | - reverbeats: https://youtu.be/eANLqIhOgWw 51 | - ipwebtv: [@odysee](https://odysee.com/@gotbletu:b/ipwebtv-watch-free-internet-tv-channels:3?r=3BeEtwB4Yw1JBZQDyp2EGW25c41greAh) 52 | 53 | ### author 54 | - gotbletu (@youtube|github|odysee) 55 | - https://www.youtube.com/user/gotbletu 56 | 57 | -------------------------------------------------------------------------------- /_0applauncher,--.desktop.application.launcher: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: launch gui programs with fzf like dmenu/rofi 5 | # depend: fzf sed coreutils findutils xdg-utils util-linux 6 | 7 | desktop_file() { 8 | find /usr/share/applications -name "*.desktop" 2>/dev/null 9 | find /usr/local/share/applications -name "*.desktop" 2>/dev/null 10 | find "$HOME/.local/share/applications" -name "*.desktop" 2>/dev/null 11 | find /var/lib/flatpak/exports/share/applications -name "*.desktop" 2>/dev/null 12 | find "$HOME/.local/share/flatpak/exports/share/applications" -name "*.desktop" 2>/dev/null 13 | } 14 | 15 | export FZF_DEFAULT_OPTS="-e -i --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last'" 16 | selected="$(desktop_file | sed 's/.desktop$//g' | sort | fzf -m -d / --with-nth -1 --prompt="select program(s) to open: ")" 17 | [ -z "$selected" ] && exit 18 | echo "$selected" | while read -r line ; do setsid xdg-open "$line".desktop >/dev/null 2>&1 & disown ; sleep 0.2 ; done 19 | -------------------------------------------------------------------------------- /_calculator,--.math.calculation: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: commandline calculator 5 | # demo: http://www.youtube.com/watch?v=JkyodHenTuc 6 | # depend: coreutils python (or bc) 7 | 8 | pycalcmsg() { 9 | cat <>> basic: 1+1 2-6 3*5 4/8 11 | >>> remainder: 10%3 12 | >>> orderof: 50+2*8/(10*5) 13 | >>> exponents(^): 10**2 14 | >>> squareroot: sqrt(49) 15 | >>> othermath: help('math') 16 | >>> press Tab to autocomplete math functions 17 | >>> $(python -V) calculator (ctrl+d to exit) 18 | EOF 19 | } 20 | 21 | bccalcmsg() { 22 | cat <>> basic: 1+1 2-6 3*5 4/8 24 | >>> orderof: 50/(10*5) 25 | >>> exponents(^): 10^2 26 | >>> squareroot: sqrt(49) 27 | >>> bc calculator (press ctrl+c to exit) 28 | EOF 29 | } 30 | 31 | if command -v python3 >/dev/null; then 32 | pycalcmsg 33 | python3 -ic "from math import *; import cmath" 34 | elif command -v python2 >/dev/null; then 35 | pycalcmsg 36 | python2 -ic "from __future__ import division; from math import *; from random import *" 37 | elif command -v bc >/dev/null; then 38 | bccalcmsg 39 | bc -q -l 40 | else 41 | echo "install python or bc" 42 | exit 1 43 | fi 44 | -------------------------------------------------------------------------------- /_chromium-history,--.open.chromiun.browser.history.in.new.tab: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # author: junegunn choi (https://github.com/junegunn) 3 | # editby: gotbletu 4 | # desc: fzf open chromium web history 5 | # depend: fzf chromium sed awk coreutils xdg-utils util-linux 6 | # reff: http://web.archive.org/web/20220306071810/https://junegunn.kr/2015/04/browsing-chrome-history-with-fzf 7 | # https://github.com/junegunn/fzf/wiki/examples#browsing-history 8 | 9 | export FZF_DEFAULT_OPTS="-e -i --info=default --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last'" 10 | cols=$(( COLUMNS / 3 )) 11 | sep='{::}' 12 | /usr/bin/cp -f ~/.config/chromium/Default/History /tmp/h 13 | selected="$( 14 | sqlite3 -separator $sep /tmp/h \ 15 | "select substr(title, 1, $cols), url 16 | from urls order by last_visit_time desc" | 17 | awk -F $sep '{printf "%-'$cols's \x1b[36m%s\x1b[m\n", $1, $2}' | 18 | fzf --ansi -m --prompt="chromium-history >>> select url(s) to open: " | sed 's#.*\(https*://\)#\1#' 19 | )" 20 | [ -z "$selected" ] && exit 21 | echo "$selected" | while read -r line ; do setsid xdg-open "$line"; done 22 | -------------------------------------------------------------------------------- /_clipmenu,--.simple.clipboard.manager: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: clipmenu clipboard history with fzf 5 | # demo: https://youtu.be/9-4boJ9krsY 6 | # depend: fzf coreutils util-linux procps-ng xsel 7 | # clipmenu (https://github.com/cdown/clipmenu) 8 | # note: has support for multiline clipboard history 9 | 10 | export FZF_DEFAULT_OPTS="-e -i --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last,tab:down,shift-tab:up'" 11 | 12 | mylist() { 13 | cat < /dev/null 2>&1 & disown 33 | sleep 0.2 34 | ;; 35 | restart) 36 | kill "$(pgrep -f clipmenud)" 37 | setsid "clipmenud" > /dev/null 2>&1 & disown 38 | sleep 0.2 39 | ;; 40 | stop) 41 | kill "$(pgrep -f clipmenud)" 42 | ;; 43 | enable) 44 | clipctl enable 45 | ;; 46 | disable) 47 | clipctl disable 48 | ;; 49 | esac 50 | -------------------------------------------------------------------------------- /_cmus,--.control.music.player: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: control cmus via fzf 5 | # depend: fzf cmus coreutils awk notify-send 6 | 7 | # allow notify-send to work in XFCE4 8 | # xfce4-notifyd > applications > notify-send > [ ] mute application 9 | 10 | track_time() { 11 | duration_total="$(cmus-remote -Q | awk '/duration / {print $2}')" 12 | duration_min=$((duration_total / 60)) 13 | duration_sec=$((duration_total % 60)) 14 | position_total="$(cmus-remote -Q | awk '/position / {print $2}')" 15 | position_min=$((position_total / 60)) 16 | position_sec=$((position_total % 60)) 17 | } 18 | 19 | mylist() { 20 | cat </dev/tty' \ 66 | --header 'C-x:playpause C-s:stop A-n:next A-p:prev C-r:random C-j/k/n/p:navigate' 67 | " 68 | selected="$(mylist | fzf --info=hidden --prompt="cmus: ")" 69 | 70 | [ -z "$selected" ] && exit 71 | case $selected in 72 | random) 73 | cmus-remote --clear --queue 74 | cmus-remote --queue "$(shuf -n 1 < ~/.cmus/lib.pl)" 75 | cmus-remote --next --play 76 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q \ 77 | | awk '/ artist / || /album / || /title / || /date/ {print substr($0, index($0,$2)) }')" 78 | ;; 79 | queue) 80 | selected="$(fzf -m -d / --with-nth '-2..' --info=inline --prompt="cmus >>> queue song(s): " < ~/.cmus/lib.pl )" 81 | [ -z "$selected" ] && exit 82 | cmus-remote --clear --queue # clear cmus queue 83 | echo "$selected" | while read -r line ; do cmus-remote --queue "$line" ; done # add songs to queue playlist 84 | cmus-remote --next --play # play queued song 85 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q \ 86 | | awk '/ artist / || /album / || /title / || /date/ {print substr($0, index($0,$2)) }')" 87 | ;; 88 | status) 89 | notify-send -t 10000 --icon=info "cmus" "$(cmus-remote -Q \ 90 | | awk '/ artist / || /album / || /title / || /date/ || /shuffle/ || /vol_/ || /repeat/ {print substr($0, index($0,$2)) }')" 91 | ;; 92 | next) 93 | cmus-remote --next --play 94 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q \ 95 | | awk '/ artist / || /album / || /title /|| /date/ {print substr($0, index($0,$2)) }')" 96 | ;; 97 | previous) 98 | cmus-remote --prev --prev --play 99 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q \ 100 | | awk '/ artist / || /album / || /title /|| /date/ {print substr($0, index($0,$2)) }')" 101 | ;; 102 | play-pause) 103 | cmus-remote --pause 104 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q \ 105 | | awk '/ artist / || /album / || /title /|| /date/ {print substr($0, index($0,$2)) }')" 106 | ;; 107 | stop) 108 | cmus-remote --stop 109 | ;; 110 | shuffle-toggle) 111 | cmus-remote --shuffle # tracks, albums, off 112 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q \ 113 | | awk '/shuffle/ {print substr($0, index($0,$2)) }')" 114 | ;; 115 | repeat-toggle) 116 | cmus-remote --repeat 117 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q \ 118 | | awk '/repeat / {print substr($0, index($0,$2)) }')" 119 | ;; 120 | repeat-current) 121 | cmus-remote -C "toggle repeat_current" 122 | if [ "$(cmus-remote -Q | awk '/repeat_current/ {print $3}')" = "true" ]; then 123 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q \ 124 | | awk '/repeat_current/ || / artist / || /album / || /title / || /date/ {print substr($0, index($0,$2)) }')" 125 | else 126 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q | awk '/repeat_current/ {print substr($0, index($0,$2)) }')" 127 | fi 128 | ;; 129 | aaa-toggle) 130 | cmus-remote -C "toggle aaa_mode" # toggle artist, album, all 131 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q | awk '/aaa_mode/ {print substr($0, index($0,$2)) }')" 132 | ;; 133 | "seek-forward +10s") 134 | cmus-remote --seek +10 135 | track_time 136 | notify-send -t 5000 --icon=info "cmus" "$position_min:$position_sec / $duration_min:$duration_sec" 137 | ;; 138 | "seek-backward -10s") 139 | cmus-remote --seek -10 140 | track_time 141 | notify-send -t 5000 --icon=info "cmus" "$position_min:$position_sec / $duration_min:$duration_sec" 142 | ;; 143 | "seek-forward +1m") 144 | cmus-remote --seek +1m 145 | track_time 146 | notify-send -t 5000 --icon=info "cmus" "$position_min:$position_sec / $duration_min:$duration_sec" 147 | ;; 148 | "seek-backward -1m") 149 | cmus-remote --seek -1m 150 | track_time 151 | notify-send -t 5000 --icon=info "cmus" "$position_min:$position_sec / $duration_min:$duration_sec" 152 | ;; 153 | "volume-up +10") 154 | cmus-remote --volume +10% 155 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q | awk '/vol_/ {print substr($0, index($0,$2)) }')" 156 | ;; 157 | "volume-down -10") 158 | cmus-remote --volume -10% 159 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q | awk '/vol_/ {print substr($0, index($0,$2)) }')" 160 | ;; 161 | "volume "*) 162 | cmus-remote --volume "$(echo "$selected" | cut -d ' ' -f2)"% 163 | notify-send -t 5000 --icon=info "cmus" "$(cmus-remote -Q | awk '/vol_/ {print substr($0, index($0,$2)) }')" 164 | ;; 165 | esac 166 | -------------------------------------------------------------------------------- /_derez,--.restore.or.empty.trash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: restore or empty trash bin files via fzf 5 | # depend: fzf coreutils util-linux glib2 6 | 7 | export FZF_DEFAULT_OPTS="-e -i --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last,ctrl-a:select-all,ctrl-d:deselect-all,ctrl-t:toggle-all'" 8 | selected="$( 9 | gio trash --list | column -t -s $'\t' | \ 10 | fzf -m -d / --with-nth 4.. --prompt="derez >>> restore file(s): " \ 11 | --bind "shift-delete:execute:gio trash --empty >/dev/tty" \ 12 | --bind "ctrl-r:reload:gio trash --list | column -t -s $'\t'" \ 13 | --header 'C-a:select-all C-d:deselect-all C-t:toggle-all C-r:reload S-del:empty C-j/k/n/p:navigate' 14 | )" 15 | [ -z "$selected" ] && exit 16 | echo "$selected" | cut -d ' ' -f1 | while read -r line ; do gio trash --restore "$line" ; done 17 | -------------------------------------------------------------------------------- /_fkill,--.process.killer: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # source: https://github.com/junegunn/fzf/wiki/examples#processes 3 | # desc: fzf kill processes similar to htop 4 | # depend: fzf coreutils sed awk findutils procps-ng util-linux 5 | 6 | export FZF_DEFAULT_OPTS="-e -i --prompt='fkill >>> kill process: ' --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last'" 7 | 8 | # fkill - kill processes - list only the ones you can kill. Modified the earlier script. 9 | fkill() { 10 | local pid 11 | if [ "$UID" != "0" ]; then 12 | pid=$(ps -f -u $UID | sed 1d | fzf -m | awk '{print $2}') 13 | else 14 | pid=$(ps -ef | sed 1d | fzf -m | awk '{print $2}') 15 | fi 16 | 17 | if [ "x$pid" != "x" ] 18 | then 19 | echo $pid | xargs kill -${1:-9} 20 | fi 21 | } 22 | fkill 23 | 24 | -------------------------------------------------------------------------------- /_fman,--.man.pages: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # source: https://github.com/junegunn/fzf/wiki/examples#man-pages 3 | # desc: quick lookup man page with fzf 4 | # depend: fzf coreutils awk man-db findutils 5 | 6 | export FZF_DEFAULT_OPTS="-e -i --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last,tab:down,shift-tab:up'" 7 | man -k . | fzf -q "$1" --prompt='manpages: ' --preview-window down \ 8 | --preview $'echo {} | tr -d \'()\' | awk \'{printf "%s ", $2} {print $1}\' | xargs -r man' \ 9 | | tr -d '()' | awk '{printf "%s ", $2} {print $1}' | xargs -r man 10 | -------------------------------------------------------------------------------- /_ipwebtv,--.watch.internet.tv.channels: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: fzf open iptv channel to watch with mpv 5 | # demo: https://odysee.com/@gotbletu:b/ipwebtv-watch-free-internet-tv-channels:3?r=3BeEtwB4Yw1JBZQDyp2EGW25c41greAh 6 | # depend: fzf coreutils util-linux awk wget mpv 7 | # m3u2csv (https://github.com/Axel-Erfurt/m3uEdit/blob/main/m3u_to_csv.py) 8 | # reff: https://database.freetuxtv.net/site/index 9 | # https://github.com/Free-TV/IPTV/tree/master/playlists 10 | # https://github.com/iptv-org/iptv 11 | 12 | mydir="$HOME/.config/ipwebtv" 13 | 14 | # {{{ iptvorg 15 | refresh_iptvorg() { 16 | wget -c -P "$mydir" -O "$mydir"/iptvorg-main-safe-only-all.m3u 'https://iptv-org.github.io/iptv/index.m3u' 17 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-all.m3u 'https://iptv-org.github.io/iptv/index.category.m3u' 18 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-all.m3u 'https://iptv-org.github.io/iptv/index.language.m3u' 19 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-all.m3u 'https://iptv-org.github.io/iptv/index.country.m3u' 20 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-all.m3u 'https://iptv-org.github.io/iptv/index.region.m3u' 21 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-animation.m3u 'https://iptv-org.github.io/iptv/categories/animation.m3u' 22 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-auto.m3u 'https://iptv-org.github.io/iptv/categories/auto.m3u' 23 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-business.m3u 'https://iptv-org.github.io/iptv/categories/business.m3u' 24 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-classic.m3u 'https://iptv-org.github.io/iptv/categories/classic.m3u' 25 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-comedy.m3u 'https://iptv-org.github.io/iptv/categories/comedy.m3u' 26 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-cooking.m3u 'https://iptv-org.github.io/iptv/categories/cooking.m3u' 27 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-culture.m3u 'https://iptv-org.github.io/iptv/categories/culture.m3u' 28 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-documentary.m3u 'https://iptv-org.github.io/iptv/categories/documentary.m3u' 29 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-education.m3u 'https://iptv-org.github.io/iptv/categories/education.m3u' 30 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-entertainment.m3u 'https://iptv-org.github.io/iptv/categories/entertainment.m3u' 31 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-family.m3u 'https://iptv-org.github.io/iptv/categories/family.m3u' 32 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-general.m3u 'https://iptv-org.github.io/iptv/categories/general.m3u' 33 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-kids.m3u 'https://iptv-org.github.io/iptv/categories/kids.m3u' 34 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-legislative.m3u 'https://iptv-org.github.io/iptv/categories/legislative.m3u' 35 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-lifestyle.m3u 'https://iptv-org.github.io/iptv/categories/lifestyle.m3u' 36 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-movies.m3u 'https://iptv-org.github.io/iptv/categories/movies.m3u' 37 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-music.m3u 'https://iptv-org.github.io/iptv/categories/music.m3u' 38 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-news.m3u 'https://iptv-org.github.io/iptv/categories/news.m3u' 39 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-outdoor.m3u 'https://iptv-org.github.io/iptv/categories/outdoor.m3u' 40 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-relax.m3u 'https://iptv-org.github.io/iptv/categories/relax.m3u' 41 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-religious.m3u 'https://iptv-org.github.io/iptv/categories/religious.m3u' 42 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-science.m3u 'https://iptv-org.github.io/iptv/categories/science.m3u' 43 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-series.m3u 'https://iptv-org.github.io/iptv/categories/series.m3u' 44 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-shop.m3u 'https://iptv-org.github.io/iptv/categories/shop.m3u' 45 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-sports.m3u 'https://iptv-org.github.io/iptv/categories/sports.m3u' 46 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-travel.m3u 'https://iptv-org.github.io/iptv/categories/travel.m3u' 47 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-weather.m3u 'https://iptv-org.github.io/iptv/categories/weather.m3u' 48 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-xxx.m3u 'https://iptv-org.github.io/iptv/categories/xxx.m3u' 49 | wget -c -P "$mydir" -O "$mydir"/iptvorg-category-undefined.m3u 'https://iptv-org.github.io/iptv/categories/undefined.m3u' 50 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-afghan-persian.m3u 'https://iptv-org.github.io/iptv/languages/prs.m3u' 51 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-afrikaans.m3u 'https://iptv-org.github.io/iptv/languages/afr.m3u' 52 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-albanian.m3u 'https://iptv-org.github.io/iptv/languages/sqi.m3u' 53 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-alemannic.m3u 'https://iptv-org.github.io/iptv/languages/gsw.m3u' 54 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-amharic.m3u 'https://iptv-org.github.io/iptv/languages/amh.m3u' 55 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-arabic.m3u 'https://iptv-org.github.io/iptv/languages/ara.m3u' 56 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-armenian.m3u 'https://iptv-org.github.io/iptv/languages/hye.m3u' 57 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-assamese.m3u 'https://iptv-org.github.io/iptv/languages/asm.m3u' 58 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-assyrian-neo-aramaic.m3u 'https://iptv-org.github.io/iptv/languages/aii.m3u' 59 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-azerbaijani.m3u 'https://iptv-org.github.io/iptv/languages/aze.m3u' 60 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-bashkir.m3u 'https://iptv-org.github.io/iptv/languages/bak.m3u' 61 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-basque.m3u 'https://iptv-org.github.io/iptv/languages/eus.m3u' 62 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-belarusian.m3u 'https://iptv-org.github.io/iptv/languages/bel.m3u' 63 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-bengali.m3u 'https://iptv-org.github.io/iptv/languages/ben.m3u' 64 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-bhojpuri.m3u 'https://iptv-org.github.io/iptv/languages/bho.m3u' 65 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-bosnian.m3u 'https://iptv-org.github.io/iptv/languages/bos.m3u' 66 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-bulgarian.m3u 'https://iptv-org.github.io/iptv/languages/bul.m3u' 67 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-burmese.m3u 'https://iptv-org.github.io/iptv/languages/mya.m3u' 68 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-catalan.m3u 'https://iptv-org.github.io/iptv/languages/cat.m3u' 69 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-central-kurdish.m3u 'https://iptv-org.github.io/iptv/languages/ckb.m3u' 70 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-chhattisgarhi.m3u 'https://iptv-org.github.io/iptv/languages/hne.m3u' 71 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-chinese.m3u 'https://iptv-org.github.io/iptv/languages/zho.m3u' 72 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-croatian.m3u 'https://iptv-org.github.io/iptv/languages/hrv.m3u' 73 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-czech.m3u 'https://iptv-org.github.io/iptv/languages/ces.m3u' 74 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-danish.m3u 'https://iptv-org.github.io/iptv/languages/dan.m3u' 75 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-dhanwar-nepal.m3u 'https://iptv-org.github.io/iptv/languages/dhw.m3u' 76 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-dhivehi.m3u 'https://iptv-org.github.io/iptv/languages/div.m3u' 77 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-dholuo.m3u 'https://iptv-org.github.io/iptv/languages/luo.m3u' 78 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-dimili.m3u 'https://iptv-org.github.io/iptv/languages/zza.m3u' 79 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-dutch.m3u 'https://iptv-org.github.io/iptv/languages/nld.m3u' 80 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-english.m3u 'https://iptv-org.github.io/iptv/languages/eng.m3u' 81 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-estonian.m3u 'https://iptv-org.github.io/iptv/languages/est.m3u' 82 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-ewe.m3u 'https://iptv-org.github.io/iptv/languages/ewe.m3u' 83 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-faroese.m3u 'https://iptv-org.github.io/iptv/languages/fao.m3u' 84 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-fataleka.m3u 'https://iptv-org.github.io/iptv/languages/far.m3u' 85 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-filipino.m3u 'https://iptv-org.github.io/iptv/languages/fil.m3u' 86 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-finnish.m3u 'https://iptv-org.github.io/iptv/languages/fin.m3u' 87 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-french.m3u 'https://iptv-org.github.io/iptv/languages/fra.m3u' 88 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-galician.m3u 'https://iptv-org.github.io/iptv/languages/glg.m3u' 89 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-galolen.m3u 'https://iptv-org.github.io/iptv/languages/gal.m3u' 90 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-georgian.m3u 'https://iptv-org.github.io/iptv/languages/kat.m3u' 91 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-german.m3u 'https://iptv-org.github.io/iptv/languages/deu.m3u' 92 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-gikuyu.m3u 'https://iptv-org.github.io/iptv/languages/kik.m3u' 93 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-goan-konkani.m3u 'https://iptv-org.github.io/iptv/languages/gom.m3u' 94 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-greek.m3u 'https://iptv-org.github.io/iptv/languages/ell.m3u' 95 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-greenlandic.m3u 'https://iptv-org.github.io/iptv/languages/kal.m3u' 96 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-gujarati.m3u 'https://iptv-org.github.io/iptv/languages/guj.m3u' 97 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-haitian.m3u 'https://iptv-org.github.io/iptv/languages/hat.m3u' 98 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-hausa.m3u 'https://iptv-org.github.io/iptv/languages/hau.m3u' 99 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-hebrew.m3u 'https://iptv-org.github.io/iptv/languages/heb.m3u' 100 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-hindi.m3u 'https://iptv-org.github.io/iptv/languages/hin.m3u' 101 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-hungarian.m3u 'https://iptv-org.github.io/iptv/languages/hun.m3u' 102 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-icelandic.m3u 'https://iptv-org.github.io/iptv/languages/isl.m3u' 103 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-indonesian.m3u 'https://iptv-org.github.io/iptv/languages/ind.m3u' 104 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-inuktitut.m3u 'https://iptv-org.github.io/iptv/languages/iku.m3u' 105 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-irish.m3u 'https://iptv-org.github.io/iptv/languages/gle.m3u' 106 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-italian.m3u 'https://iptv-org.github.io/iptv/languages/ita.m3u' 107 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-japanese.m3u 'https://iptv-org.github.io/iptv/languages/jpn.m3u' 108 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-javanese.m3u 'https://iptv-org.github.io/iptv/languages/jav.m3u' 109 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-kannada.m3u 'https://iptv-org.github.io/iptv/languages/kan.m3u' 110 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-kazakh.m3u 'https://iptv-org.github.io/iptv/languages/kaz.m3u' 111 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-khmer.m3u 'https://iptv-org.github.io/iptv/languages/khm.m3u' 112 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-kinyarwanda.m3u 'https://iptv-org.github.io/iptv/languages/kin.m3u' 113 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-kirghiz.m3u 'https://iptv-org.github.io/iptv/languages/kir.m3u' 114 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-konkani-macrolanguage.m3u 'https://iptv-org.github.io/iptv/languages/kok.m3u' 115 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-korean.m3u 'https://iptv-org.github.io/iptv/languages/kor.m3u' 116 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-kurdish.m3u 'https://iptv-org.github.io/iptv/languages/kur.m3u' 117 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-lahnda.m3u 'https://iptv-org.github.io/iptv/languages/lah.m3u' 118 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-lao.m3u 'https://iptv-org.github.io/iptv/languages/lao.m3u' 119 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-latin.m3u 'https://iptv-org.github.io/iptv/languages/lat.m3u' 120 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-latvian.m3u 'https://iptv-org.github.io/iptv/languages/lav.m3u' 121 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-letzeburgesch.m3u 'https://iptv-org.github.io/iptv/languages/ltz.m3u' 122 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-lithuanian.m3u 'https://iptv-org.github.io/iptv/languages/lit.m3u' 123 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-macedonian.m3u 'https://iptv-org.github.io/iptv/languages/mkd.m3u' 124 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-malay.m3u 'https://iptv-org.github.io/iptv/languages/msa.m3u' 125 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-malayalam.m3u 'https://iptv-org.github.io/iptv/languages/mal.m3u' 126 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-maltese.m3u 'https://iptv-org.github.io/iptv/languages/mlt.m3u' 127 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-mandarin-chinese.m3u 'https://iptv-org.github.io/iptv/languages/cmn.m3u' 128 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-marathi.m3u 'https://iptv-org.github.io/iptv/languages/mar.m3u' 129 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-min=nan-chinese.m3u 'https://iptv-org.github.io/iptv/languages/nan.m3u' 130 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-mongolian.m3u 'https://iptv-org.github.io/iptv/languages/mon.m3u' 131 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-montenegrin.m3u 'https://iptv-org.github.io/iptv/languages/cnr.m3u' 132 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-nepali.m3u 'https://iptv-org.github.io/iptv/languages/nep.m3u' 133 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-norwegian.m3u 'https://iptv-org.github.io/iptv/languages/nor.m3u' 134 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-norwegian-bokmal.m3u 'https://iptv-org.github.io/iptv/languages/nob.m3u' 135 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-oriya-macrolanguage.m3u 'https://iptv-org.github.io/iptv/languages/ori.m3u' 136 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-panjabi.m3u 'https://iptv-org.github.io/iptv/languages/pan.m3u' 137 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-papiamento.m3u 'https://iptv-org.github.io/iptv/languages/pap.m3u' 138 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-parsi-dari.m3u 'https://iptv-org.github.io/iptv/languages/prd.m3u' 139 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-pashto.m3u 'https://iptv-org.github.io/iptv/languages/pus.m3u' 140 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-persian.m3u 'https://iptv-org.github.io/iptv/languages/fas.m3u' 141 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-polish.m3u 'https://iptv-org.github.io/iptv/languages/pol.m3u' 142 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-portuguese.m3u 'https://iptv-org.github.io/iptv/languages/por.m3u' 143 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-romanian.m3u 'https://iptv-org.github.io/iptv/languages/ron.m3u' 144 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-romany.m3u 'https://iptv-org.github.io/iptv/languages/rom.m3u' 145 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-russian.m3u 'https://iptv-org.github.io/iptv/languages/rus.m3u' 146 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-saint-lucian-creole-french.m3u 'https://iptv-org.github.io/iptv/languages/acf.m3u' 147 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-santali.m3u 'https://iptv-org.github.io/iptv/languages/sat.m3u' 148 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-serbian.m3u 'https://iptv-org.github.io/iptv/languages/srp.m3u' 149 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-serbo-croatian.m3u 'https://iptv-org.github.io/iptv/languages/hbs.m3u' 150 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-sindhi.m3u 'https://iptv-org.github.io/iptv/languages/snd.m3u' 151 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-sinhala.m3u 'https://iptv-org.github.io/iptv/languages/sin.m3u' 152 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-slovak.m3u 'https://iptv-org.github.io/iptv/languages/slk.m3u' 153 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-slovenian.m3u 'https://iptv-org.github.io/iptv/languages/slv.m3u' 154 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-somali.m3u 'https://iptv-org.github.io/iptv/languages/som.m3u' 155 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-spanish.m3u 'https://iptv-org.github.io/iptv/languages/spa.m3u' 156 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-swahili.m3u 'https://iptv-org.github.io/iptv/languages/swa.m3u' 157 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-swedish.m3u 'https://iptv-org.github.io/iptv/languages/swe.m3u' 158 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-tagalog.m3u 'https://iptv-org.github.io/iptv/languages/tgl.m3u' 159 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-tajik.m3u 'https://iptv-org.github.io/iptv/languages/tgk.m3u' 160 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-tamil.m3u 'https://iptv-org.github.io/iptv/languages/tam.m3u' 161 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-telugu.m3u 'https://iptv-org.github.io/iptv/languages/tel.m3u' 162 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-tetum.m3u 'https://iptv-org.github.io/iptv/languages/tet.m3u' 163 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-thai.m3u 'https://iptv-org.github.io/iptv/languages/tha.m3u' 164 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-tigrinya.m3u 'https://iptv-org.github.io/iptv/languages/tir.m3u' 165 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-turkish.m3u 'https://iptv-org.github.io/iptv/languages/tur.m3u' 166 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-turkmen.m3u 'https://iptv-org.github.io/iptv/languages/tuk.m3u' 167 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-ukrainian.m3u 'https://iptv-org.github.io/iptv/languages/ukr.m3u' 168 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-urdu.m3u 'https://iptv-org.github.io/iptv/languages/urd.m3u' 169 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-uzbek.m3u 'https://iptv-org.github.io/iptv/languages/uzb.m3u' 170 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-vietnamese.m3u 'https://iptv-org.github.io/iptv/languages/vie.m3u' 171 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-welsh.m3u 'https://iptv-org.github.io/iptv/languages/cym.m3u' 172 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-western-frisian.m3u 'https://iptv-org.github.io/iptv/languages/fry.m3u' 173 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-wolof.m3u 'https://iptv-org.github.io/iptv/languages/wol.m3u' 174 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-yucatec-maya.m3u 'https://iptv-org.github.io/iptv/languages/yua.m3u' 175 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-yue-chinese.m3u 'https://iptv-org.github.io/iptv/languages/yue.m3u' 176 | wget -c -P "$mydir" -O "$mydir"/iptvorg-language-undefined.m3u 'https://iptv-org.github.io/iptv/languages/undefined.m3u' 177 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-afghanistan.m3u 'https://iptv-org.github.io/iptv/countries/af.m3u' 178 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-albania.m3u 'https://iptv-org.github.io/iptv/countries/al.m3u' 179 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-algeria.m3u 'https://iptv-org.github.io/iptv/countries/dz.m3u' 180 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-american-samoa.m3u 'https://iptv-org.github.io/iptv/countries/as.m3u' 181 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-andorra.m3u 'https://iptv-org.github.io/iptv/countries/ad.m3u' 182 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-angola.m3u 'https://iptv-org.github.io/iptv/countries/ao.m3u' 183 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-anguilla.m3u 'https://iptv-org.github.io/iptv/countries/ai.m3u' 184 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-antigua-and-barbuda.m3u 'https://iptv-org.github.io/iptv/countries/ag.m3u' 185 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-argentina.m3u 'https://iptv-org.github.io/iptv/countries/ar.m3u' 186 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-buenos-aires.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-b.m3u' 187 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-catamarca.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-k.m3u' 188 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-chaco.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-h.m3u' 189 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-chubut.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-u.m3u' 190 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ciudad-autonoma-de-buenos-aires.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-c.m3u' 191 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cordoba.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-x.m3u' 192 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-corrientes.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-w.m3u' 193 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-entre-rios.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-e.m3u' 194 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-formosa.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-p.m3u' 195 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jujuy.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-y.m3u' 196 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-la-pampa.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-l.m3u' 197 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-la-rioja.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-f.m3u' 198 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-mendoza.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-m.m3u' 199 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-misiones.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-n.m3u' 200 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-neuquen.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-q.m3u' 201 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-rio-negro.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-r.m3u' 202 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-salta.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-a.m3u' 203 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-san-juan.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-j.m3u' 204 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-san-luis.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-d.m3u' 205 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-santa-cruz.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-z.m3u' 206 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-santa-fe.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-s.m3u' 207 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-santiago-del-estero.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-g.m3u' 208 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tucuman.m3u 'https://iptv-org.github.io/iptv/subdivisions/ar-t.m3u' 209 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-armenia.m3u 'https://iptv-org.github.io/iptv/countries/am.m3u' 210 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-aruba.m3u 'https://iptv-org.github.io/iptv/countries/aw.m3u' 211 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-australia.m3u 'https://iptv-org.github.io/iptv/countries/au.m3u' 212 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-austria.m3u 'https://iptv-org.github.io/iptv/countries/at.m3u' 213 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-azerbaijan.m3u 'https://iptv-org.github.io/iptv/countries/az.m3u' 214 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bahamas.m3u 'https://iptv-org.github.io/iptv/countries/bs.m3u' 215 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bahrain.m3u 'https://iptv-org.github.io/iptv/countries/bh.m3u' 216 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bangladesh.m3u 'https://iptv-org.github.io/iptv/countries/bd.m3u' 217 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-barbados.m3u 'https://iptv-org.github.io/iptv/countries/bb.m3u' 218 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-belarus.m3u 'https://iptv-org.github.io/iptv/countries/by.m3u' 219 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-belgium.m3u 'https://iptv-org.github.io/iptv/countries/be.m3u' 220 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-belize.m3u 'https://iptv-org.github.io/iptv/countries/bz.m3u' 221 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-benin.m3u 'https://iptv-org.github.io/iptv/countries/bj.m3u' 222 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bermuda.m3u 'https://iptv-org.github.io/iptv/countries/bm.m3u' 223 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bhutan.m3u 'https://iptv-org.github.io/iptv/countries/bt.m3u' 224 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bolivia.m3u 'https://iptv-org.github.io/iptv/countries/bo.m3u' 225 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cochabamba.m3u 'https://iptv-org.github.io/iptv/subdivisions/bo-c.m3u' 226 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-la-paz.m3u 'https://iptv-org.github.io/iptv/subdivisions/bo-l.m3u' 227 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-oruro.m3u 'https://iptv-org.github.io/iptv/subdivisions/bo-o.m3u' 228 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-santa-cruz.m3u 'https://iptv-org.github.io/iptv/subdivisions/bo-s.m3u' 229 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bonaire.m3u 'https://iptv-org.github.io/iptv/countries/bq.m3u' 230 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bosnia-and-herzegovina.m3u 'https://iptv-org.github.io/iptv/countries/ba.m3u' 231 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-botswana.m3u 'https://iptv-org.github.io/iptv/countries/bw.m3u' 232 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bouvet-island.m3u 'https://iptv-org.github.io/iptv/countries/bv.m3u' 233 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-brazil.m3u 'https://iptv-org.github.io/iptv/countries/br.m3u' 234 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-alagoas.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-al.m3u' 235 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-amazonas.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-am.m3u' 236 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bahia.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-ba.m3u' 237 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ceara.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-ce.m3u' 238 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-distrito-federal.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-df.m3u' 239 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-espirito-santo.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-es.m3u' 240 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-goias.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-go.m3u' 241 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-maranhao.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-ma.m3u' 242 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-mato-grosso.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-mt.m3u' 243 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-minas-gerais.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-mg.m3u' 244 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-para.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-pa.m3u' 245 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-paraiba.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-pb.m3u' 246 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-parana.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-pr.m3u' 247 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-pernambuco.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-pe.m3u' 248 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-rio-de-janeiro.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-rj.m3u' 249 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-rio-grande-do-norte.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-rn.m3u' 250 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-rio-grande-do-sul.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-rs.m3u' 251 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-rondonia.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-ro.m3u' 252 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-roraima.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-rr.m3u' 253 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-santa-catarina.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-sc.m3u' 254 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sao-paulo.m3u 'https://iptv-org.github.io/iptv/subdivisions/br-sp.m3u' 255 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-british-virgin-islands.m3u 'https://iptv-org.github.io/iptv/countries/vg.m3u' 256 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-brunei.m3u 'https://iptv-org.github.io/iptv/countries/bn.m3u' 257 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bulgaria.m3u 'https://iptv-org.github.io/iptv/countries/bg.m3u' 258 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-burkina-faso.m3u 'https://iptv-org.github.io/iptv/countries/bf.m3u' 259 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-burundi.m3u 'https://iptv-org.github.io/iptv/countries/bi.m3u' 260 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cambodia.m3u 'https://iptv-org.github.io/iptv/countries/kh.m3u' 261 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cameroon.m3u 'https://iptv-org.github.io/iptv/countries/cm.m3u' 262 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-canada.m3u 'https://iptv-org.github.io/iptv/countries/ca.m3u' 263 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-alberta.m3u 'https://iptv-org.github.io/iptv/subdivisions/ca-ab.m3u' 264 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-british-columbia.m3u 'https://iptv-org.github.io/iptv/subdivisions/ca-bc.m3u' 265 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-manitoba.m3u 'https://iptv-org.github.io/iptv/subdivisions/ca-mb.m3u' 266 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-new-brunswick.m3u 'https://iptv-org.github.io/iptv/subdivisions/ca-nb.m3u' 267 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-newfoundland-and-labrador.m3u 'https://iptv-org.github.io/iptv/subdivisions/ca-nl.m3u' 268 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-northwest-territories.m3u 'https://iptv-org.github.io/iptv/subdivisions/ca-nt.m3u' 269 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-nova-scotia.m3u 'https://iptv-org.github.io/iptv/subdivisions/ca-ns.m3u' 270 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ontario.m3u 'https://iptv-org.github.io/iptv/subdivisions/ca-on.m3u' 271 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-prince-edward-island.m3u 'https://iptv-org.github.io/iptv/subdivisions/ca-pe.m3u' 272 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-quebec.m3u 'https://iptv-org.github.io/iptv/subdivisions/ca-qc.m3u' 273 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-saskatchewan.m3u 'https://iptv-org.github.io/iptv/subdivisions/ca-sk.m3u' 274 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cape-verde.m3u 'https://iptv-org.github.io/iptv/countries/cv.m3u' 275 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-boa-vista.m3u 'https://iptv-org.github.io/iptv/subdivisions/cv-bv.m3u' 276 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sal.m3u 'https://iptv-org.github.io/iptv/subdivisions/cv-sl.m3u' 277 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cayman-islands.m3u 'https://iptv-org.github.io/iptv/countries/ky.m3u' 278 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-central-african-republic.m3u 'https://iptv-org.github.io/iptv/countries/cf.m3u' 279 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-chad.m3u 'https://iptv-org.github.io/iptv/countries/td.m3u' 280 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-chile.m3u 'https://iptv-org.github.io/iptv/countries/cl.m3u' 281 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-biobio.m3u 'https://iptv-org.github.io/iptv/subdivisions/cl-bi.m3u' 282 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-coquimbo.m3u 'https://iptv-org.github.io/iptv/subdivisions/cl-co.m3u' 283 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-la-araucania.m3u 'https://iptv-org.github.io/iptv/subdivisions/cl-ar.m3u' 284 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-libertador-general-bernardo-o-higgins.m3u 'https://iptv-org.github.io/iptv/subdivisions/cl-li.m3u' 285 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-los-lagos.m3u 'https://iptv-org.github.io/iptv/subdivisions/cl-ll.m3u' 286 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-maule.m3u 'https://iptv-org.github.io/iptv/subdivisions/cl-ml.m3u' 287 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-nuble.m3u 'https://iptv-org.github.io/iptv/subdivisions/cl-nb.m3u' 288 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-valparaiso.m3u 'https://iptv-org.github.io/iptv/subdivisions/cl-vs.m3u' 289 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-china.m3u 'https://iptv-org.github.io/iptv/countries/cn.m3u' 290 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-colombia.m3u 'https://iptv-org.github.io/iptv/countries/co.m3u' 291 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-antioquia.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-ant.m3u' 292 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-atlantico.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-atl.m3u' 293 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bolivar.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-bol.m3u' 294 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-caldas.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-cal.m3u' 295 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cauca.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-cau.m3u' 296 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-choco.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-cho.m3u' 297 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cundinamarca.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-cun.m3u' 298 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-huila.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-hui.m3u' 299 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-magdalena.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-mag.m3u' 300 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-narino.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-nar.m3u' 301 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-norte-de-santander.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-nsa.m3u' 302 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-quindio.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-qui.m3u' 303 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-risaralda.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-ris.m3u' 304 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-san-andres-providencia-y-santa-catalina.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-sap.m3u' 305 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tolima.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-tol.m3u' 306 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-valle-del-cauca.m3u 'https://iptv-org.github.io/iptv/subdivisions/co-vac.m3u' 307 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-comoros.m3u 'https://iptv-org.github.io/iptv/countries/km.m3u' 308 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cook-islands.m3u 'https://iptv-org.github.io/iptv/countries/ck.m3u' 309 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-costa-rica.m3u 'https://iptv-org.github.io/iptv/countries/cr.m3u' 310 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-puntarenas.m3u 'https://iptv-org.github.io/iptv/subdivisions/cr-p.m3u' 311 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-san-jose.m3u 'https://iptv-org.github.io/iptv/subdivisions/cr-sj.m3u' 312 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-croatia.m3u 'https://iptv-org.github.io/iptv/countries/hr.m3u' 313 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cuba.m3u 'https://iptv-org.github.io/iptv/countries/cu.m3u' 314 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-curacao.m3u 'https://iptv-org.github.io/iptv/countries/cw.m3u' 315 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cyprus.m3u 'https://iptv-org.github.io/iptv/countries/cy.m3u' 316 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-czech-republic.m3u 'https://iptv-org.github.io/iptv/countries/cz.m3u' 317 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-democratic-republic-of-the-congo.m3u 'https://iptv-org.github.io/iptv/countries/cd.m3u' 318 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-denmark.m3u 'https://iptv-org.github.io/iptv/countries/dk.m3u' 319 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-djibouti.m3u 'https://iptv-org.github.io/iptv/countries/dj.m3u' 320 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-dominica.m3u 'https://iptv-org.github.io/iptv/countries/dm.m3u' 321 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-dominican-republic.m3u 'https://iptv-org.github.io/iptv/countries/do.m3u' 322 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-distrito-nacional-santo-domingo.m3u 'https://iptv-org.github.io/iptv/subdivisions/do-01.m3u' 323 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-la-altagracia.m3u 'https://iptv-org.github.io/iptv/subdivisions/do-11.m3u' 324 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-la-vega.m3u 'https://iptv-org.github.io/iptv/subdivisions/do-13.m3u' 325 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-monsenor-nouel.m3u 'https://iptv-org.github.io/iptv/subdivisions/do-28.m3u' 326 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-puerto-plata.m3u 'https://iptv-org.github.io/iptv/subdivisions/do-18.m3u' 327 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-san-juan.m3u 'https://iptv-org.github.io/iptv/subdivisions/do-22.m3u' 328 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-santiago.m3u 'https://iptv-org.github.io/iptv/subdivisions/do-25.m3u' 329 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-valverde.m3u 'https://iptv-org.github.io/iptv/subdivisions/do-27.m3u' 330 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-east-timor.m3u 'https://iptv-org.github.io/iptv/countries/tl.m3u' 331 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ecuador.m3u 'https://iptv-org.github.io/iptv/countries/ec.m3u' 332 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-azuay.m3u 'https://iptv-org.github.io/iptv/subdivisions/ec-a.m3u' 333 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-loja.m3u 'https://iptv-org.github.io/iptv/subdivisions/ec-l.m3u' 334 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-orellana.m3u 'https://iptv-org.github.io/iptv/subdivisions/ec-d.m3u' 335 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-egypt.m3u 'https://iptv-org.github.io/iptv/countries/eg.m3u' 336 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-el-salvador.m3u 'https://iptv-org.github.io/iptv/countries/sv.m3u' 337 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-equatorial-guinea.m3u 'https://iptv-org.github.io/iptv/countries/gq.m3u' 338 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-eritrea.m3u 'https://iptv-org.github.io/iptv/countries/er.m3u' 339 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-estonia.m3u 'https://iptv-org.github.io/iptv/countries/ee.m3u' 340 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ethiopia.m3u 'https://iptv-org.github.io/iptv/countries/et.m3u' 341 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-falkland-islands.m3u 'https://iptv-org.github.io/iptv/countries/fk.m3u' 342 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-faroe-islands.m3u 'https://iptv-org.github.io/iptv/countries/fo.m3u' 343 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-fiji.m3u 'https://iptv-org.github.io/iptv/countries/fj.m3u' 344 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-finland.m3u 'https://iptv-org.github.io/iptv/countries/fi.m3u' 345 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-keski-suomi.m3u 'https://iptv-org.github.io/iptv/subdivisions/fi-08.m3u' 346 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-pohjanmaa.m3u 'https://iptv-org.github.io/iptv/subdivisions/fi-12.m3u' 347 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-france.m3u 'https://iptv-org.github.io/iptv/countries/fr.m3u' 348 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-french-guiana.m3u 'https://iptv-org.github.io/iptv/countries/gf.m3u' 349 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-french-polynesia.m3u 'https://iptv-org.github.io/iptv/countries/pf.m3u' 350 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-french-southern-territories.m3u 'https://iptv-org.github.io/iptv/countries/tf.m3u' 351 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-gabon.m3u 'https://iptv-org.github.io/iptv/countries/ga.m3u' 352 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-gambia.m3u 'https://iptv-org.github.io/iptv/countries/gm.m3u' 353 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-georgia.m3u 'https://iptv-org.github.io/iptv/countries/ge.m3u' 354 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-germany.m3u 'https://iptv-org.github.io/iptv/countries/de.m3u' 355 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ghana.m3u 'https://iptv-org.github.io/iptv/countries/gh.m3u' 356 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-greece.m3u 'https://iptv-org.github.io/iptv/countries/gr.m3u' 357 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-greenland.m3u 'https://iptv-org.github.io/iptv/countries/gl.m3u' 358 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-grenada.m3u 'https://iptv-org.github.io/iptv/countries/gd.m3u' 359 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-guadeloupe.m3u 'https://iptv-org.github.io/iptv/countries/gp.m3u' 360 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-guam.m3u 'https://iptv-org.github.io/iptv/countries/gu.m3u' 361 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-guatemala.m3u 'https://iptv-org.github.io/iptv/countries/gt.m3u' 362 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-escuintla.m3u 'https://iptv-org.github.io/iptv/subdivisions/gt-05.m3u' 363 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-izabal.m3u 'https://iptv-org.github.io/iptv/subdivisions/gt-18.m3u' 364 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-quiche.m3u 'https://iptv-org.github.io/iptv/subdivisions/gt-14.m3u' 365 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sacatepequez.m3u 'https://iptv-org.github.io/iptv/subdivisions/gt-03.m3u' 366 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-san-marcos.m3u 'https://iptv-org.github.io/iptv/subdivisions/gt-12.m3u' 367 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-santa-rosa.m3u 'https://iptv-org.github.io/iptv/subdivisions/gt-06.m3u' 368 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-solola.m3u 'https://iptv-org.github.io/iptv/subdivisions/gt-07.m3u' 369 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-totonicapan.m3u 'https://iptv-org.github.io/iptv/subdivisions/gt-08.m3u' 370 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-guernsey.m3u 'https://iptv-org.github.io/iptv/countries/gg.m3u' 371 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-guinea.m3u 'https://iptv-org.github.io/iptv/countries/gn.m3u' 372 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-guinea-bissau.m3u 'https://iptv-org.github.io/iptv/countries/gw.m3u' 373 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-guyana.m3u 'https://iptv-org.github.io/iptv/countries/gy.m3u' 374 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-haiti.m3u 'https://iptv-org.github.io/iptv/countries/ht.m3u' 375 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-honduras.m3u 'https://iptv-org.github.io/iptv/countries/hn.m3u' 376 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-hong-kong.m3u 'https://iptv-org.github.io/iptv/countries/hk.m3u' 377 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-hungary.m3u 'https://iptv-org.github.io/iptv/countries/hu.m3u' 378 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-iceland.m3u 'https://iptv-org.github.io/iptv/countries/is.m3u' 379 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-india.m3u 'https://iptv-org.github.io/iptv/countries/in.m3u' 380 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-indonesia.m3u 'https://iptv-org.github.io/iptv/countries/id.m3u' 381 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-aceh.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-ac.m3u' 382 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bali.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-ba.m3u' 383 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-banten.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-bt.m3u' 384 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-bengkulu.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-be.m3u' 385 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-gorontalo.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-go.m3u' 386 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jakarta-raya.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-jk.m3u' 387 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jambi.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-ja.m3u' 388 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jawa-barat.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-jb.m3u' 389 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jawa-tengah.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-jt.m3u' 390 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jawa-timur.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-ji.m3u' 391 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kalimantan-barat.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-kb.m3u' 392 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kalimantan-selatan.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-ks.m3u' 393 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kalimantan-tengah.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-kt.m3u' 394 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kalimantan-timur.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-ki.m3u' 395 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kepulauan-bangka-belitung.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-bb.m3u' 396 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-lampung.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-la.m3u' 397 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-maluku.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-ml.m3u' 398 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-maluku-utara.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-mu.m3u' 399 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-nusa-tenggara-barat.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-nb.m3u' 400 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-nusa-tenggara-timur.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-nt.m3u' 401 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-papua.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-pp.m3u' 402 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-riau.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-ri.m3u' 403 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sulawesi-barat.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-sr.m3u' 404 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sulawesi-selatan.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-sn.m3u' 405 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sulawesi-tengah.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-st.m3u' 406 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sulawesi-tenggara.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-sg.m3u' 407 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sumatera-barat.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-sb.m3u' 408 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sumatera-selatan.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-ss.m3u' 409 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-yogyakarta.m3u 'https://iptv-org.github.io/iptv/subdivisions/id-yo.m3u' 410 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-iran.m3u 'https://iptv-org.github.io/iptv/countries/ir.m3u' 411 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tehran.m3u 'https://iptv-org.github.io/iptv/subdivisions/ir-23.m3u' 412 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-iraq.m3u 'https://iptv-org.github.io/iptv/countries/iq.m3u' 413 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ireland.m3u 'https://iptv-org.github.io/iptv/countries/ie.m3u' 414 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-israel.m3u 'https://iptv-org.github.io/iptv/countries/il.m3u' 415 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-italy.m3u 'https://iptv-org.github.io/iptv/countries/it.m3u' 416 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ivory-coast.m3u 'https://iptv-org.github.io/iptv/countries/ci.m3u' 417 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jamaica.m3u 'https://iptv-org.github.io/iptv/countries/jm.m3u' 418 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-japan.m3u 'https://iptv-org.github.io/iptv/countries/jp.m3u' 419 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-chiba.m3u 'https://iptv-org.github.io/iptv/subdivisions/jp-12.m3u' 420 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kanagawa.m3u 'https://iptv-org.github.io/iptv/subdivisions/jp-14.m3u' 421 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-saitama.m3u 'https://iptv-org.github.io/iptv/subdivisions/jp-11.m3u' 422 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tokyo.m3u 'https://iptv-org.github.io/iptv/subdivisions/jp-13.m3u' 423 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jordan.m3u 'https://iptv-org.github.io/iptv/countries/jo.m3u' 424 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kazakhstan.m3u 'https://iptv-org.github.io/iptv/countries/kz.m3u' 425 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kenya.m3u 'https://iptv-org.github.io/iptv/countries/ke.m3u' 426 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kiribati.m3u 'https://iptv-org.github.io/iptv/countries/ki.m3u' 427 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kosovo.m3u 'https://iptv-org.github.io/iptv/countries/xk.m3u' 428 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kuwait.m3u 'https://iptv-org.github.io/iptv/countries/kw.m3u' 429 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kyrgyzstan.m3u 'https://iptv-org.github.io/iptv/countries/kg.m3u' 430 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-laos.m3u 'https://iptv-org.github.io/iptv/countries/la.m3u' 431 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-latvia.m3u 'https://iptv-org.github.io/iptv/countries/lv.m3u' 432 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-lebanon.m3u 'https://iptv-org.github.io/iptv/countries/lb.m3u' 433 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-lesotho.m3u 'https://iptv-org.github.io/iptv/countries/ls.m3u' 434 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-liberia.m3u 'https://iptv-org.github.io/iptv/countries/lr.m3u' 435 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-libya.m3u 'https://iptv-org.github.io/iptv/countries/ly.m3u' 436 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-liechtenstein.m3u 'https://iptv-org.github.io/iptv/countries/li.m3u' 437 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-lithuania.m3u 'https://iptv-org.github.io/iptv/countries/lt.m3u' 438 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-luxembourg.m3u 'https://iptv-org.github.io/iptv/countries/lu.m3u' 439 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-macao.m3u 'https://iptv-org.github.io/iptv/countries/mo.m3u' 440 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-madagascar.m3u 'https://iptv-org.github.io/iptv/countries/mg.m3u' 441 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-malawi.m3u 'https://iptv-org.github.io/iptv/countries/mw.m3u' 442 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-malaysia.m3u 'https://iptv-org.github.io/iptv/countries/my.m3u' 443 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-maldives.m3u 'https://iptv-org.github.io/iptv/countries/mv.m3u' 444 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-mali.m3u 'https://iptv-org.github.io/iptv/countries/ml.m3u' 445 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-malta.m3u 'https://iptv-org.github.io/iptv/countries/mt.m3u' 446 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-marshall-islands.m3u 'https://iptv-org.github.io/iptv/countries/mh.m3u' 447 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-martinique.m3u 'https://iptv-org.github.io/iptv/countries/mq.m3u' 448 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-mauritania.m3u 'https://iptv-org.github.io/iptv/countries/mr.m3u' 449 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-mauritius.m3u 'https://iptv-org.github.io/iptv/countries/mu.m3u' 450 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-mayotte.m3u 'https://iptv-org.github.io/iptv/countries/yt.m3u' 451 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-mexico.m3u 'https://iptv-org.github.io/iptv/countries/mx.m3u' 452 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-aguascalientes.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-agu.m3u' 453 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-baja-california.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-bcn.m3u' 454 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-chihuahua.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-chh.m3u' 455 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ciudad-de-mexico.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-cmx.m3u' 456 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-coahuila-de-zaragoza.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-coa.m3u' 457 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-durango.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-dur.m3u' 458 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-guanajuato.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-gua.m3u' 459 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-guerrero.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-gro.m3u' 460 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jalisco.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-jal.m3u' 461 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-morelos.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-mor.m3u' 462 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-nuevo-leon.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-nle.m3u' 463 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-puebla.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-pue.m3u' 464 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-queretaro.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-que.m3u' 465 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-quintana-roo.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-roo.m3u' 466 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-san-luis-potosi.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-slp.m3u' 467 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sinaloa.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-sin.m3u' 468 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sonora.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-son.m3u' 469 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tamaulipas.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-tam.m3u' 470 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-veracruz-de-ignacio-de-la-llave.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-ver.m3u' 471 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-yucatan.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-yuc.m3u' 472 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-zacatecas.m3u 'https://iptv-org.github.io/iptv/subdivisions/mx-zac.m3u' 473 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-micronesia.m3u 'https://iptv-org.github.io/iptv/countries/fm.m3u' 474 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-moldova.m3u 'https://iptv-org.github.io/iptv/countries/md.m3u' 475 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-monaco.m3u 'https://iptv-org.github.io/iptv/countries/mc.m3u' 476 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-mongolia.m3u 'https://iptv-org.github.io/iptv/countries/mn.m3u' 477 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-montenegro.m3u 'https://iptv-org.github.io/iptv/countries/me.m3u' 478 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ulcinj.m3u 'https://iptv-org.github.io/iptv/subdivisions/me-20.m3u' 479 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-montserrat.m3u 'https://iptv-org.github.io/iptv/countries/ms.m3u' 480 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-morocco.m3u 'https://iptv-org.github.io/iptv/countries/ma.m3u' 481 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-mozambique.m3u 'https://iptv-org.github.io/iptv/countries/mz.m3u' 482 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-myanmar-burma.m3u 'https://iptv-org.github.io/iptv/countries/mm.m3u' 483 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-namibia.m3u 'https://iptv-org.github.io/iptv/countries/na.m3u' 484 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-nauru.m3u 'https://iptv-org.github.io/iptv/countries/nr.m3u' 485 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-nepal.m3u 'https://iptv-org.github.io/iptv/countries/np.m3u' 486 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-netherlands.m3u 'https://iptv-org.github.io/iptv/countries/nl.m3u' 487 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-new-caledonia.m3u 'https://iptv-org.github.io/iptv/countries/nc.m3u' 488 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-new-zealand.m3u 'https://iptv-org.github.io/iptv/countries/nz.m3u' 489 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-nicaragua.m3u 'https://iptv-org.github.io/iptv/countries/ni.m3u' 490 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-niger.m3u 'https://iptv-org.github.io/iptv/countries/ne.m3u' 491 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-nigeria.m3u 'https://iptv-org.github.io/iptv/countries/ng.m3u' 492 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-niue.m3u 'https://iptv-org.github.io/iptv/countries/nu.m3u' 493 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-norfolk-island.m3u 'https://iptv-org.github.io/iptv/countries/nf.m3u' 494 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-north-korea.m3u 'https://iptv-org.github.io/iptv/countries/kp.m3u' 495 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-north-macedonia.m3u 'https://iptv-org.github.io/iptv/countries/mk.m3u' 496 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-northern-mariana-islands.m3u 'https://iptv-org.github.io/iptv/countries/mp.m3u' 497 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-norway.m3u 'https://iptv-org.github.io/iptv/countries/no.m3u' 498 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-oman.m3u 'https://iptv-org.github.io/iptv/countries/om.m3u' 499 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-pakistan.m3u 'https://iptv-org.github.io/iptv/countries/pk.m3u' 500 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-islamabad.m3u 'https://iptv-org.github.io/iptv/subdivisions/pk-is.m3u' 501 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-palau.m3u 'https://iptv-org.github.io/iptv/countries/pw.m3u' 502 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-palestine.m3u 'https://iptv-org.github.io/iptv/countries/ps.m3u' 503 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-panama.m3u 'https://iptv-org.github.io/iptv/countries/pa.m3u' 504 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-papua-new-guinea.m3u 'https://iptv-org.github.io/iptv/countries/pg.m3u' 505 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-paraguay.m3u 'https://iptv-org.github.io/iptv/countries/py.m3u' 506 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-alto-parana.m3u 'https://iptv-org.github.io/iptv/subdivisions/py-10.m3u' 507 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-boqueron.m3u 'https://iptv-org.github.io/iptv/subdivisions/py-19.m3u' 508 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-caaguazu.m3u 'https://iptv-org.github.io/iptv/subdivisions/py-5.m3u' 509 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-central.m3u 'https://iptv-org.github.io/iptv/subdivisions/py-11.m3u' 510 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-itapua.m3u 'https://iptv-org.github.io/iptv/subdivisions/py-7.m3u' 511 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-presidente-hayes.m3u 'https://iptv-org.github.io/iptv/subdivisions/py-15.m3u' 512 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-peru.m3u 'https://iptv-org.github.io/iptv/countries/pe.m3u' 513 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-amazonas.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-ama.m3u' 514 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ancash.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-anc.m3u' 515 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-apurimac.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-apu.m3u' 516 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-arequipa.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-are.m3u' 517 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ayacucho.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-aya.m3u' 518 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-cusco.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-cus.m3u' 519 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-junin.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-jun.m3u' 520 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-lima.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-lim.m3u' 521 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-loreto.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-lor.m3u' 522 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-moquegua.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-moq.m3u' 523 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-puno.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-pun.m3u' 524 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-san-martin.m3u 'https://iptv-org.github.io/iptv/subdivisions/pe-sam.m3u' 525 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-philippines.m3u 'https://iptv-org.github.io/iptv/countries/ph.m3u' 526 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-pitcairn-islands.m3u 'https://iptv-org.github.io/iptv/countries/pn.m3u' 527 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-poland.m3u 'https://iptv-org.github.io/iptv/countries/pl.m3u' 528 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-portugal.m3u 'https://iptv-org.github.io/iptv/countries/pt.m3u' 529 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-puerto-rico.m3u 'https://iptv-org.github.io/iptv/countries/pr.m3u' 530 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-qatar.m3u 'https://iptv-org.github.io/iptv/countries/qa.m3u' 531 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-republic-of-the-congo.m3u 'https://iptv-org.github.io/iptv/countries/cg.m3u' 532 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-brazzaville.m3u 'https://iptv-org.github.io/iptv/subdivisions/cg-bzv.m3u' 533 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-réunion.m3u 'https://iptv-org.github.io/iptv/countries/re.m3u' 534 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-romania.m3u 'https://iptv-org.github.io/iptv/countries/ro.m3u' 535 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-gorj.m3u 'https://iptv-org.github.io/iptv/subdivisions/ro-gj.m3u' 536 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-russia.m3u 'https://iptv-org.github.io/iptv/countries/ru.m3u' 537 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-rwanda.m3u 'https://iptv-org.github.io/iptv/countries/rw.m3u' 538 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-saint-barthelemy.m3u 'https://iptv-org.github.io/iptv/countries/bl.m3u' 539 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-saint-helena.m3u 'https://iptv-org.github.io/iptv/countries/sh.m3u' 540 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-saint-kitts-and-nevis.m3u 'https://iptv-org.github.io/iptv/countries/kn.m3u' 541 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-saint-lucia.m3u 'https://iptv-org.github.io/iptv/countries/lc.m3u' 542 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-saint-martin.m3u 'https://iptv-org.github.io/iptv/countries/mf.m3u' 543 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-saint-pierre-and-miquelon.m3u 'https://iptv-org.github.io/iptv/countries/pm.m3u' 544 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-saint-vincent-and-the-grenadines.m3u 'https://iptv-org.github.io/iptv/countries/vc.m3u' 545 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-samoa.m3u 'https://iptv-org.github.io/iptv/countries/ws.m3u' 546 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-san-marino.m3u 'https://iptv-org.github.io/iptv/countries/sm.m3u' 547 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sao-tome-and-principe.m3u 'https://iptv-org.github.io/iptv/countries/st.m3u' 548 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-saudi-arabia.m3u 'https://iptv-org.github.io/iptv/countries/sa.m3u' 549 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-senegal.m3u 'https://iptv-org.github.io/iptv/countries/sn.m3u' 550 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-serbia.m3u 'https://iptv-org.github.io/iptv/countries/rs.m3u' 551 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-seychelles.m3u 'https://iptv-org.github.io/iptv/countries/sc.m3u' 552 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sierra-leone.m3u 'https://iptv-org.github.io/iptv/countries/sl.m3u' 553 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-singapore.m3u 'https://iptv-org.github.io/iptv/countries/sg.m3u' 554 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sint-maarten.m3u 'https://iptv-org.github.io/iptv/countries/sx.m3u' 555 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-slovakia.m3u 'https://iptv-org.github.io/iptv/countries/sk.m3u' 556 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-slovenia.m3u 'https://iptv-org.github.io/iptv/countries/si.m3u' 557 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-solomon-islands.m3u 'https://iptv-org.github.io/iptv/countries/sb.m3u' 558 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-somalia.m3u 'https://iptv-org.github.io/iptv/countries/so.m3u' 559 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-south-africa.m3u 'https://iptv-org.github.io/iptv/countries/za.m3u' 560 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-south-georgia-and-the-south-sandwich-islands.m3u 'https://iptv-org.github.io/iptv/countries/gs.m3u' 561 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-south-korea.m3u 'https://iptv-org.github.io/iptv/countries/kr.m3u' 562 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-busan-gwangyeoksi.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-26.m3u' 563 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-chungcheongbuk-do.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-43.m3u' 564 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-daegu-gwangyeoksi.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-27.m3u' 565 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-daejeon-gwangyeoksi.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-30.m3u' 566 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-gangwon-do.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-42.m3u' 567 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-gwangju-gwangyeoksi.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-29.m3u' 568 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-gyeonggi-do.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-41.m3u' 569 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-gyeongsangbuk-do.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-47.m3u' 570 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-gyeongsangnam-do.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-48.m3u' 571 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jeju-teukbyeoljachido.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-49.m3u' 572 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jeollabuk-do.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-45.m3u' 573 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-jeollanam-do.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-46.m3u' 574 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-seoul-teukbyeolsi.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-11.m3u' 575 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ulsan-gwangyeoksi.m3u 'https://iptv-org.github.io/iptv/subdivisions/kr-31.m3u' 576 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-south-sudan.m3u 'https://iptv-org.github.io/iptv/countries/ss.m3u' 577 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-spain.m3u 'https://iptv-org.github.io/iptv/countries/es.m3u' 578 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-andalucia.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-an.m3u' 579 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-aragon.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-ar.m3u' 580 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-asturias-principado-de.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-as.m3u' 581 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-canarias.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-cn.m3u' 582 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-castilla-y-leon.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-cl.m3u' 583 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-castilla-la-mancha.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-cm.m3u' 584 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-catalunya.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-ct.m3u' 585 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ceuta.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-ce.m3u' 586 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-extremadura.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-ex.m3u' 587 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-galicia.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-ga.m3u' 588 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-illes-balears.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-ib.m3u' 589 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-la-rioja.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-ri.m3u' 590 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-madrid-comunidad-de.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-md.m3u' 591 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-murcia-region-de.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-mc.m3u' 592 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-navarra-comunidad-foral-de.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-nc.m3u' 593 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-pais-vasco.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-pv.m3u' 594 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-valenciana-comunidad.m3u 'https://iptv-org.github.io/iptv/subdivisions/es-vc.m3u' 595 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sri-lanka.m3u 'https://iptv-org.github.io/iptv/countries/lk.m3u' 596 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sudan.m3u 'https://iptv-org.github.io/iptv/countries/sd.m3u' 597 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-suriname.m3u 'https://iptv-org.github.io/iptv/countries/sr.m3u' 598 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-swaziland.m3u 'https://iptv-org.github.io/iptv/countries/sz.m3u' 599 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-sweden.m3u 'https://iptv-org.github.io/iptv/countries/se.m3u' 600 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-switzerland.m3u 'https://iptv-org.github.io/iptv/countries/ch.m3u' 601 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-syria.m3u 'https://iptv-org.github.io/iptv/countries/sy.m3u' 602 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-taiwan.m3u 'https://iptv-org.github.io/iptv/countries/tw.m3u' 603 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tajikistan.m3u 'https://iptv-org.github.io/iptv/countries/tj.m3u' 604 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tanzania.m3u 'https://iptv-org.github.io/iptv/countries/tz.m3u' 605 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-thailand.m3u 'https://iptv-org.github.io/iptv/countries/th.m3u' 606 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-togo.m3u 'https://iptv-org.github.io/iptv/countries/tg.m3u' 607 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tokelau.m3u 'https://iptv-org.github.io/iptv/countries/tk.m3u' 608 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tonga.m3u 'https://iptv-org.github.io/iptv/countries/to.m3u' 609 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-trinidad-and-tobago.m3u 'https://iptv-org.github.io/iptv/countries/tt.m3u' 610 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tunisia.m3u 'https://iptv-org.github.io/iptv/countries/tn.m3u' 611 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-turkey.m3u 'https://iptv-org.github.io/iptv/countries/tr.m3u' 612 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-turkmenistan.m3u 'https://iptv-org.github.io/iptv/countries/tm.m3u' 613 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-turks-and-caicos-islands.m3u 'https://iptv-org.github.io/iptv/countries/tc.m3u' 614 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tuvalu.m3u 'https://iptv-org.github.io/iptv/countries/tv.m3u' 615 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-us-virgin-islands.m3u 'https://iptv-org.github.io/iptv/countries/vi.m3u' 616 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-uganda.m3u 'https://iptv-org.github.io/iptv/countries/ug.m3u' 617 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ukraine.m3u 'https://iptv-org.github.io/iptv/countries/ua.m3u' 618 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-united-arab-emirates.m3u 'https://iptv-org.github.io/iptv/countries/ae.m3u' 619 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-united-kingdom.m3u 'https://iptv-org.github.io/iptv/countries/uk.m3u' 620 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-wales.m3u 'https://iptv-org.github.io/iptv/subdivisions/gb-wls.m3u' 621 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-united-states.m3u 'https://iptv-org.github.io/iptv/countries/us.m3u' 622 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-alabama.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-al.m3u' 623 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-alaska.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ak.m3u' 624 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-arizona.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-az.m3u' 625 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-arkansas.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ar.m3u' 626 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-california.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ca.m3u' 627 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-colorado.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-co.m3u' 628 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-connecticut.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ct.m3u' 629 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-delaware.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-de.m3u' 630 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-district-of-columbia.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-dc.m3u' 631 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-florida.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-fl.m3u' 632 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-georgia.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ga.m3u' 633 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-guam.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-gu.m3u' 634 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-hawaii.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-hi.m3u' 635 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-illinois.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-il.m3u' 636 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-indiana.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-in.m3u' 637 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-iowa.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ia.m3u' 638 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kansas.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ks.m3u' 639 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-kentucky.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ky.m3u' 640 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-louisiana.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-la.m3u' 641 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-maine.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-me.m3u' 642 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-maryland.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-md.m3u' 643 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-massachusetts.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ma.m3u' 644 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-michigan.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-mi.m3u' 645 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-minnesota.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-mn.m3u' 646 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-mississippi.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ms.m3u' 647 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-missouri.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-mo.m3u' 648 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-nebraska.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ne.m3u' 649 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-nevada.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-nv.m3u' 650 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-new-hampshire.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-nh.m3u' 651 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-new-jersey.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-nj.m3u' 652 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-new-mexico.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-nm.m3u' 653 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-new-york.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ny.m3u' 654 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-north-carolina.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-nc.m3u' 655 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-north-dakota.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-nd.m3u' 656 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-ohio.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-oh.m3u' 657 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-oklahoma.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-ok.m3u' 658 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-pennsylvania.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-pa.m3u' 659 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-tennessee.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-tn.m3u' 660 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-texas.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-tx.m3u' 661 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-washington.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-wa.m3u' 662 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-wisconsin.m3u 'https://iptv-org.github.io/iptv/subdivisions/us-wi.m3u' 663 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-uruguay.m3u 'https://iptv-org.github.io/iptv/countries/uy.m3u' 664 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-uzbekistan.m3u 'https://iptv-org.github.io/iptv/countries/uz.m3u' 665 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-vanuatu.m3u 'https://iptv-org.github.io/iptv/countries/vu.m3u' 666 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-vatican-city.m3u 'https://iptv-org.github.io/iptv/countries/va.m3u' 667 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-venezuela.m3u 'https://iptv-org.github.io/iptv/countries/ve.m3u' 668 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-aragua.m3u 'https://iptv-org.github.io/iptv/subdivisions/ve-d.m3u' 669 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-lara.m3u 'https://iptv-org.github.io/iptv/subdivisions/ve-k.m3u' 670 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-vietnam.m3u 'https://iptv-org.github.io/iptv/countries/vn.m3u' 671 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-wallis-and-futuna.m3u 'https://iptv-org.github.io/iptv/countries/wf.m3u' 672 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-western-sahara.m3u 'https://iptv-org.github.io/iptv/countries/eh.m3u' 673 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-yemen.m3u 'https://iptv-org.github.io/iptv/countries/ye.m3u' 674 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-zambia.m3u 'https://iptv-org.github.io/iptv/countries/zm.m3u' 675 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-zimbabwe.m3u 'https://iptv-org.github.io/iptv/countries/zw.m3u' 676 | wget -c -P "$mydir" -O "$mydir"/iptvorg-country-international.m3u 'https://iptv-org.github.io/iptv/countries/int.m3u' 677 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-africa.m3u 'https://iptv-org.github.io/iptv/regions/afr.m3u' 678 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-americas.m3u 'https://iptv-org.github.io/iptv/regions/amer.m3u' 679 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-arab-world.m3u 'https://iptv-org.github.io/iptv/regions/arab.m3u' 680 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-asia.m3u 'https://iptv-org.github.io/iptv/regions/asia.m3u' 681 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-asia-pacific.m3u 'https://iptv-org.github.io/iptv/regions/apac.m3u' 682 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-association-of-southeast-asian-nations.m3u 'https://iptv-org.github.io/iptv/regions/asean.m3u' 683 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-benelux.m3u 'https://iptv-org.github.io/iptv/regions/benelux.m3u' 684 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-caribbean.m3u 'https://iptv-org.github.io/iptv/regions/carib.m3u' 685 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-central-america.m3u 'https://iptv-org.github.io/iptv/regions/cenamer.m3u' 686 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-central-and-eastern-europe.m3u 'https://iptv-org.github.io/iptv/regions/cee.m3u' 687 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-central-asia.m3u 'https://iptv-org.github.io/iptv/regions/cas.m3u' 688 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-commonwealth-of-independent-states.m3u 'https://iptv-org.github.io/iptv/regions/cis.m3u' 689 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-europe.m3u 'https://iptv-org.github.io/iptv/regions/eur.m3u' 690 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-europe-the-middle-east-and-africa.m3u 'https://iptv-org.github.io/iptv/regions/emea.m3u' 691 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-hispanic-america.m3u 'https://iptv-org.github.io/iptv/regions/hispam.m3u' 692 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-latin-america.m3u 'https://iptv-org.github.io/iptv/regions/latam.m3u' 693 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-latin-america-and-the-caribbean.m3u 'https://iptv-org.github.io/iptv/regions/lac.m3u' 694 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-maghreb.m3u 'https://iptv-org.github.io/iptv/regions/maghreb.m3u' 695 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-middle-east.m3u 'https://iptv-org.github.io/iptv/regions/mideast.m3u' 696 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-middle-east-and-north-africa.m3u 'https://iptv-org.github.io/iptv/regions/mena.m3u' 697 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-nordics.m3u 'https://iptv-org.github.io/iptv/regions/nord.m3u' 698 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-north-america.m3u 'https://iptv-org.github.io/iptv/regions/noram.m3u' 699 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-northern-america.m3u 'https://iptv-org.github.io/iptv/regions/nam.m3u' 700 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-northern-europe.m3u 'https://iptv-org.github.io/iptv/regions/neur.m3u' 701 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-oceania.m3u 'https://iptv-org.github.io/iptv/regions/oce.m3u' 702 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-south-america.m3u 'https://iptv-org.github.io/iptv/regions/southam.m3u' 703 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-south-asia.m3u 'https://iptv-org.github.io/iptv/regions/sas.m3u' 704 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-southeast-asia.m3u 'https://iptv-org.github.io/iptv/regions/sea.m3u' 705 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-southern-europe.m3u 'https://iptv-org.github.io/iptv/regions/ser.m3u' 706 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-sub-saharan-africa.m3u 'https://iptv-org.github.io/iptv/regions/ssa.m3u' 707 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-west-africa.m3u 'https://iptv-org.github.io/iptv/regions/wafr.m3u' 708 | wget -c -P "$mydir" -O "$mydir"/iptvorg-region-western-europe.m3u 'https://iptv-org.github.io/iptv/regions/wer.m3u' 709 | wget -c -P "$mydir" -O "$mydir"/iptvorg-main-with-xxx-all.m3u 'https://iptv-org.github.io/iptv/index.nsfw.m3u' 710 | } 711 | # }}} 712 | # {{{ freetuxtv 713 | refresh_freetuxtv() { 714 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-all.m3u 'https://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&isp=all' 715 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-french.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=fr&isp=all' 716 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-nolang.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=none&isp=all' 717 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-german.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=de&isp=all' 718 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-english.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=en&isp=all' 719 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-turkish.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=tr&isp=all' 720 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-spanish.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=es&isp=all' 721 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-arabic.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ar&isp=all' 722 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-italian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=it&isp=all' 723 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-russian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ru&isp=all' 724 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-slovak.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=sk&isp=all' 725 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-czech.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=cs&isp=all' 726 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-portuguese.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=pt&isp=all' 727 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-chinese.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=zh&isp=all' 728 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-hungerian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=hu&isp=all' 729 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-dutch.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=nl&isp=all' 730 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-romanian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ro&isp=all' 731 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-serbian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=sr&isp=all' 732 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-bulgarian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=bg&isp=all' 733 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-croatian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=hr&isp=all' 734 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-serbo-croatian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=sh&isp=all' 735 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-polish.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=pl&isp=all' 736 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-greek.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=el&isp=all' 737 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-persian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=fa&isp=all' 738 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-indonesian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=in&isp=all' 739 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-albanian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=sq&isp=all' 740 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-macedonian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=mk&isp=all' 741 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-ukrainian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=uk&isp=all' 742 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-korean.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ko&isp=all' 743 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-hindi.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=hi&isp=all' 744 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-hebrew.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=iw&isp=all' 745 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-slovenian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=sl&isp=all' 746 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-vietnamese.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=vi&isp=all' 747 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-thai.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=th&isp=all' 748 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-latvian-lettish.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=lv&isp=all' 749 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-lithuanian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=lt&isp=all' 750 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-danish.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=da&isp=all' 751 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-japanese.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ja&isp=all' 752 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-finnish.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=fi&isp=all' 753 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-azerbaijani.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=az&isp=all' 754 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-georgian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ka&isp=all' 755 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-swedish.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=sv&isp=all' 756 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-norwegian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=no&isp=all' 757 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-estonian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=et&isp=all' 758 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-malay.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ms&isp=all' 759 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-urdu.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ur&isp=all' 760 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-catalan.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ca&isp=all' 761 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-maltese.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=mt&isp=all' 762 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-moldavian.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=mo&isp=all' 763 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-malayalam.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ml&isp=all' 764 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-tamil.m3u 'https://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ta&isp=all' 765 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-bengali-bangla.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=bn&isp=all' 766 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-irish.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ga&isp=all' 767 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-kazakh.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=kk&isp=all' 768 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-montenegrin.m3u 'https://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=cn&isp=all' 769 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-gujarati.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=gu&isp=all' 770 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-welsh.m3u 'https://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=cy&isp=all' 771 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-interlingua.m3u 'http://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=ia&isp=all' 772 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-icelandic.m3u 'https://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=is&isp=all' 773 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-scots-gaelic.m3u 'https://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=gd&isp=all' 774 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-laothian.m3u 'https://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&lng=lo&isp=all' 775 | } 776 | # }}} 777 | # {{{ freetv 778 | refresh_freetv() { 779 | wget -c -P "$mydir" -O "$mydir"/freetv-all.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlist.m3u8' 780 | wget -c -P "$mydir" -O "$mydir"/freetv-andorra.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_andorra.m3u8' 781 | wget -c -P "$mydir" -O "$mydir"/freetv-argentina.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_argentina.m3u8' 782 | wget -c -P "$mydir" -O "$mydir"/freetv-australia.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_australia.m3u8' 783 | wget -c -P "$mydir" -O "$mydir"/freetv-austria.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_austria.m3u8' 784 | wget -c -P "$mydir" -O "$mydir"/freetv-belarus.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_belarus.m3u8' 785 | wget -c -P "$mydir" -O "$mydir"/freetv-belgium.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_belgium.m3u8' 786 | wget -c -P "$mydir" -O "$mydir"/freetv-brazil.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_brazil.m3u8' 787 | wget -c -P "$mydir" -O "$mydir"/freetv-bulgaria.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_bulgaria.m3u8' 788 | wget -c -P "$mydir" -O "$mydir"/freetv-canada.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_canada.m3u8' 789 | wget -c -P "$mydir" -O "$mydir"/freetv-china.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_china.m3u8' 790 | wget -c -P "$mydir" -O "$mydir"/freetv-costa-rica.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_costa_rica.m3u8' 791 | wget -c -P "$mydir" -O "$mydir"/freetv-croatia.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_croatia.m3u8' 792 | wget -c -P "$mydir" -O "$mydir"/freetv-cyprus.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_cyprus.m3u8' 793 | wget -c -P "$mydir" -O "$mydir"/freetv-czech-republic.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_czech_republic.m3u8' 794 | wget -c -P "$mydir" -O "$mydir"/freetv-denmark.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_denmark.m3u8' 795 | wget -c -P "$mydir" -O "$mydir"/freetv-dominican-republic.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_dominican_republic.m3u8' 796 | wget -c -P "$mydir" -O "$mydir"/freetv-estonia.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_estonia.m3u8' 797 | wget -c -P "$mydir" -O "$mydir"/freetv-finland.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_finland.m3u8' 798 | wget -c -P "$mydir" -O "$mydir"/freetv-france.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_france.m3u8' 799 | wget -c -P "$mydir" -O "$mydir"/freetv-georgia.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_georgia.m3u8' 800 | wget -c -P "$mydir" -O "$mydir"/freetv-germany.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_germany.m3u8' 801 | wget -c -P "$mydir" -O "$mydir"/freetv-greece.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_greece.m3u8' 802 | wget -c -P "$mydir" -O "$mydir"/freetv-hungary.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_hungary.m3u8' 803 | wget -c -P "$mydir" -O "$mydir"/freetv-iceland.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_iceland.m3u8' 804 | wget -c -P "$mydir" -O "$mydir"/freetv-india.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_india.m3u8' 805 | wget -c -P "$mydir" -O "$mydir"/freetv-iran.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_iran.m3u8' 806 | wget -c -P "$mydir" -O "$mydir"/freetv-iraq.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_iraq.m3u8' 807 | wget -c -P "$mydir" -O "$mydir"/freetv-ireland.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_ireland.m3u8' 808 | wget -c -P "$mydir" -O "$mydir"/freetv-israel.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_israel.m3u8' 809 | wget -c -P "$mydir" -O "$mydir"/freetv-italy.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_italy.m3u8' 810 | wget -c -P "$mydir" -O "$mydir"/freetv-japan.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_japan.m3u8' 811 | wget -c -P "$mydir" -O "$mydir"/freetv-korea.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_korea.m3u8' 812 | wget -c -P "$mydir" -O "$mydir"/freetv-kosovo.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_kosovo.m3u8' 813 | wget -c -P "$mydir" -O "$mydir"/freetv-lithuania.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_lithuania.m3u8' 814 | wget -c -P "$mydir" -O "$mydir"/freetv-malta.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_malta.m3u8' 815 | wget -c -P "$mydir" -O "$mydir"/freetv-mexico.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_mexico.m3u8' 816 | wget -c -P "$mydir" -O "$mydir"/freetv-montenegro.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_montenegro.m3u8' 817 | wget -c -P "$mydir" -O "$mydir"/freetv-netherlands.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_netherlands.m3u8' 818 | wget -c -P "$mydir" -O "$mydir"/freetv-north-korea.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_north_korea.m3u8' 819 | wget -c -P "$mydir" -O "$mydir"/freetv-north-macedonia.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_north_macedonia.m3u8' 820 | wget -c -P "$mydir" -O "$mydir"/freetv-norway.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_norway.m3u8' 821 | wget -c -P "$mydir" -O "$mydir"/freetv-paraguay.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_paraguay.m3u8' 822 | wget -c -P "$mydir" -O "$mydir"/freetv-peru.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_peru.m3u8' 823 | wget -c -P "$mydir" -O "$mydir"/freetv-portugal.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_portugal.m3u8' 824 | wget -c -P "$mydir" -O "$mydir"/freetv-romania.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_romania.m3u8' 825 | wget -c -P "$mydir" -O "$mydir"/freetv-russia.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_russia.m3u8' 826 | wget -c -P "$mydir" -O "$mydir"/freetv-san-marino.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_san_marino.m3u8' 827 | wget -c -P "$mydir" -O "$mydir"/freetv-serbia.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_serbia.m3u8' 828 | wget -c -P "$mydir" -O "$mydir"/freetv-slovakia.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_slovakia.m3u8' 829 | wget -c -P "$mydir" -O "$mydir"/freetv-slovenia.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_slovenia.m3u8' 830 | wget -c -P "$mydir" -O "$mydir"/freetv-spain.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_spain.m3u8' 831 | wget -c -P "$mydir" -O "$mydir"/freetv-spain-vod.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_spain_vod.m3u8' 832 | wget -c -P "$mydir" -O "$mydir"/freetv-sweden.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_sweden.m3u8' 833 | wget -c -P "$mydir" -O "$mydir"/freetv-switzerland.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_switzerland.m3u8' 834 | wget -c -P "$mydir" -O "$mydir"/freetv-trinidad.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_trinidad.m3u8' 835 | wget -c -P "$mydir" -O "$mydir"/freetv-turkey.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_turkey.m3u8' 836 | wget -c -P "$mydir" -O "$mydir"/freetv-uk.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_uk.m3u8' 837 | wget -c -P "$mydir" -O "$mydir"/freetv-ukraine.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_ukraine.m3u8' 838 | wget -c -P "$mydir" -O "$mydir"/freetv-usa.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_usa.m3u8' 839 | wget -c -P "$mydir" -O "$mydir"/freetv-usa-vod.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_usa_vod.m3u8' 840 | wget -c -P "$mydir" -O "$mydir"/freetv-venezuela.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_venezuela.m3u8' 841 | wget -c -P "$mydir" -O "$mydir"/freetv-zz-movies.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_zz_movies.m3u8' 842 | wget -c -P "$mydir" -O "$mydir"/freetv-zz-news-ar.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_zz_news_ar.m3u8' 843 | wget -c -P "$mydir" -O "$mydir"/freetv-zz-news-en.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_zz_news_en.m3u8' 844 | wget -c -P "$mydir" -O "$mydir"/freetv-zz-news-es.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_zz_news_es.m3u8' 845 | wget -c -P "$mydir" -O "$mydir"/freetv-zz-vod-it.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_zz_vod_it.m3u8' 846 | } 847 | # }}} 848 | # {{{ main m3u only 849 | refresh_main() { 850 | wget -c -P "$mydir" -O "$mydir"/iptvorg-main-safe-only-all.m3u 'https://iptv-org.github.io/iptv/index.m3u' 851 | wget -c -P "$mydir" -O "$mydir"/freetuxtv-all.m3u 'https://database.freetuxtv.net/WebStreamExport/index?format=m3u&type=1&status=2&isp=all' 852 | wget -c -P "$mydir" -O "$mydir"/freetv-all.m3u 'https://raw.githubusercontent.com/Free-TV/IPTV/master/playlist.m3u8' 853 | } 854 | # }}} 855 | 856 | convert2csv() { 857 | cd "$mydir" || exit 858 | echo "Please wait... converting m3u to csv" 859 | for file in *.m3u; 860 | do 861 | m3u2csv "$file" "${file%.*}.csv" 862 | done 863 | } 864 | 865 | export FZF_DEFAULT_OPTS="-e -i --info=default --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last,tab:down,shift-tab:up,ctrl-k:preview-page-up,ctrl-j:preview-page-down,ctrl-y:preview-up,ctrl-e:preview-down,ctrl-/:change-preview-window(hidden|)'" 866 | 867 | mylist() { 868 | cat </dev/null 2>&1 & disown ; sleep 0.2 \ 920 | )' 921 | ;; 922 | esac 923 | 924 | -------------------------------------------------------------------------------- /_locate,--.search.local.files.and.open: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: fzf locate files in /home or /media folder only 5 | # depend: fzf mlocate xdg-utils util-linux 6 | # reqd: # update system database 7 | # sudo updatedb 8 | # 9 | # # optional: include external hdd or other mounted partition to be in the database 10 | # 1. sudo vim /etc/updatedb.conf 11 | # 2. Remove /media from PRUNEPATHS 12 | # 3. sudo updatedb 13 | 14 | export FZF_DEFAULT_OPTS="-e -i --info=inline --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last' --header 'only searching /home and /media'" 15 | locate -ir '\(^/home\|^/media\)/.*' \ 16 | | fzf -m --prompt="locate >>> select file(s) to open: " \ 17 | | while read -r line ; do setsid xdg-open "$line" ; done 18 | -------------------------------------------------------------------------------- /_notekami,--.notes.cheatsheet.snippets.manager: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: simple cheatsheet, snippet, scratchpaper and note taking manager on the terminal 5 | # depend: fzf coreutils less bat util-linux findutils glib2 renameutils 6 | # awk sed grep xsel (or xclip,wl-copy,pbcopy,clip,termux,clipboard,tmux) 7 | # demo: https://youtu.be/qwpK4rqAZwA 8 | 9 | # shellcheck disable=SC2016,SC2027,SC2086 10 | 11 | myinfo() { 12 | cat << _EOF_ 13 | **** notekami **** 14 | ***************** 15 | simple cheatsheet, snippet, scratchpaper 16 | and note taking manager on the terminal 17 | 18 | [snippet structure] 19 | 20 | 21 | ####; description of what this command does 22 | ###; your comment 23 | ##; more comment 24 | ##; another comment 25 | {block of code here} 26 | 27 | 28 | [snippet issues] 29 | 30 | avoid using werid symbols in description e.g \,),(,[,], ..etc 31 | all ##; ###; & ####; comments/description line will not be copy to clipboard 32 | 33 | [snippet examples] 34 | 35 | ####; find all directories recursively in current folder 36 | find . -type d 37 | 38 | 39 | ####; bash check if a file exists 40 | if [[ -f /etc/resolv.conf ]]; then 41 | echo "/etc/resolv.conf exist" 42 | fi 43 | 44 | 45 | ####; cut string length from left side 46 | ###; echo "Hello World" | cut -c -4 47 | ##; Hello World --> Hell 48 | cut -c -4 49 | 50 | [hotkey] 51 | 52 | global: 53 | Esc:quit 54 | Enter:select/open 55 | Home:first 56 | End:last 57 | C-k:preview-page-up 58 | C-j:preview-page-down 59 | 60 | edit: 61 | Tab:select multiple files (tmux only) 62 | C-v:rename (imv) 63 | C-r:reload 64 | Shift-delete:trash (gio trash) 65 | C-n/p:navigate down/up 66 | 67 | snippet: 68 | C-o:edit-line 69 | C-f:edit-file 70 | C-r:reload 71 | C-n/p|tab/shift-tab:navigate down/up 72 | 73 | info: 74 | q:quit 75 | 76 | [author] 77 | 78 | gotbletu (@youtube|github|odysee) 79 | https://www.youtube.com/user/gotbletu 80 | _EOF_ 81 | } 82 | 83 | mylist() { 84 | cat <> "$myfile" 112 | printf "%s\n\n" "#### $timestamp" >> "$myfile" 113 | "${EDITOR:-nano}" +999999 "$myfile" 114 | ;; 115 | search) 116 | selected=$(grep -rnv '^[[:space:]]*$' "$mydir"/* 2>/dev/null \ 117 | | fzf -d / --with-nth 6.. --prompt="notekami >>> search: ") 118 | [ -z "$selected" ] && exit 119 | file_name=$(echo "$selected" | cut -d ':' -f1) 120 | file_num=$(echo "$selected" | cut -d ':' -f2) 121 | if [[ "$TERM_PROGRAM" = tmux ]]; then 122 | tmux new-window -n "search-notes" "${EDITOR:-nano} +$file_num $file_name" 123 | else 124 | "${EDITOR:-nano}" +"$file_num" "$file_name" 125 | fi 126 | ;; 127 | create) 128 | selected=$(echo | fzf --print-query \ 129 | --prompt="notekami ($selected) >>> enter new name (no spaces): " \ 130 | --header 'type in foo.md or newdir/subdir/bar.md; C-j/k:preview-pagedown/up' \ 131 | --preview-window 'down' --preview "find $mydir/ -type d | cut -d '/' -f6- | sed -e '/^[[:blank:]]*$/d' | sort" 132 | ) 133 | [ -z "$selected" ] && exit 134 | mkdir -p "$(dirname "$mydir/$selected")" 135 | if [ "$TERM_PROGRAM" = tmux ]; then 136 | tmux new-window -n "create-cheatsheet" "${EDITOR:-nano} $mydir/$selected" 137 | else 138 | "${EDITOR:-nano}" "$mydir"/"$selected" 139 | fi 140 | ;; 141 | copy) 142 | selected="$(find "$mydir"/ -type f | sort | fzf -d / --with-nth -2.. \ 143 | --preview 'bat --color=always -pp {}' \ 144 | --prompt="notekami ($selected) >>> copy to clipboard: ")" 145 | [ -z "$selected" ] && exit 146 | # copy file to clipboard 147 | printf %s "$(cat -- "$selected")" | xsel -b 2>/dev/null || printf %s "$(cat -- "$selected")" | xclip -selection clipboard -r 2>/dev/null 148 | printf %s "$(cat -- "$selected")" | wl-copy 2>/dev/null 149 | printf %s "$(cat -- "$selected")" | clip 2>/dev/null 150 | (printf %s "$(cat -- "$selected")" > /dev/clipboard) 2>/dev/null 151 | printf %s "$(cat -- "$selected")" | pbcopy 2>/dev/null 152 | printf %s "$(cat -- "$selected")" | termux-clipboard-set 2>/dev/null 153 | (printf %s "$(cat -- "$selected")" | tmux load-buffer -) 2>/dev/null 154 | ;; 155 | info) 156 | myinfo | less -C 157 | ;; 158 | edit) 159 | if [ "$TERM_PROGRAM" = tmux ]; then 160 | selected="$(find "$mydir"/ -type f | sort | fzf -m -d / --with-nth -2.. \ 161 | --bind "shift-delete:execute:gio trash --force {} >/dev/tty" \ 162 | --bind "ctrl-v:execute:imv {} >/dev/tty" \ 163 | --bind "ctrl-r:reload:cd $mydir && find "$mydir"/ -type f | sort" \ 164 | --header 'C-v:rename C-r:reload S-del:trash C-n/p:down/up C-j/k:preview-pagedown/up' \ 165 | --preview 'bat --color=always -pp {}' \ 166 | --prompt="notekami >>> edit(s): ")" 167 | [ -z "$selected" ] && exit 168 | echo "$selected" | while read -r line; do 169 | filename="$(basename "$line")" 170 | tmux new-window -n "${filename}-pill" "${EDITOR:-nano} $line" 171 | done 172 | else 173 | selected="$(find "$mydir"/ -type f | sort | fzf -d / --with-nth -2.. \ 174 | --preview 'bat --color=always -pp {}' \ 175 | --prompt="notekami >>> edit: ")" 176 | [ -z "$selected" ] && exit 177 | "${EDITOR:-nano}" "$selected" 178 | fi 179 | ;; 180 | snippet) 181 | selected=$(grep -nrH '^####; ' "$mycheatdir"/* | fzf -d ' ' --with-nth 2.. \ 182 | --prompt="notekami ($selected) >>> copy to clipboard: " \ 183 | --bind 'ctrl-f:execute:${EDITOR:-nano} $(echo {} | cut -d: -f1) >/dev/tty' \ 184 | --bind 'ctrl-o:execute:${EDITOR:-nano} +$(echo {} | cut -d: -f2) $(echo {} | cut -d: -f1) >/dev/tty' \ 185 | --bind "ctrl-r:reload:grep -nrH '^####; ' "$mycheatdir"/* " \ 186 | --bind 'home:first,end:last,tab:down,shift-tab:up' \ 187 | --header 'C-o:edit-line C-r:reload C-n/p:down/up C-j/k:preview-pagedown/up' \ 188 | --preview-window 'down' \ 189 | --preview 'awk '/'"$(echo {} | cut -d " " -f2-)"\\n'/' RS="\n\n\n" "$(echo {} | cut -d: -f1)" | \ 190 | bat --color=always -pp -l "$(echo {} | cut -d: -f1 | rev | cut -d. -f1 | rev)"' 191 | ) 192 | [ -z "$selected" ] && exit 193 | file_name="$(echo "$selected" | cut -d: -f1)" 194 | snippet_title="$(echo "$selected" | cut -d " " -f2-)" 195 | selected=$(awk '/'"$snippet_title"'/' RS="\n\n\n" "$file_name" | sed -e '/^####;/d' -e '/^###;/d' -e '/^##;/d' ) 196 | ## copy to clipboard 197 | ## X11=xsel/xclip; wayland=wl-copy; winos(vista+)=clip; cygwin=/dev/clipboard; macos=pbcopy; android=termux 198 | printf %s "$selected" | xsel -b 2>/dev/null || printf %s "$selected" | xclip -selection clipboard -r 2>/dev/null 199 | printf %s "$selected" | wl-copy 2>/dev/null 200 | printf %s "$selected" | clip 2>/dev/null 201 | (printf %s "$selected" > /dev/clipboard) 2>/dev/null 202 | printf %s "$selected" | pbcopy 2>/dev/null 203 | printf %s "$selected" | termux-clipboard-set 2>/dev/null 204 | (printf %s "$selected" | tmux load-buffer -) 2>/dev/null 205 | ;; 206 | esac 207 | } 208 | 209 | 210 | helpmsg() { 211 | cat < 219 | 220 | options: 221 | No argument then start fzf TUI 222 | -a, --auto Auto append input to scratch paper from CLI 223 | -A, --audit Open scratch paper in text editor 224 | -e, --edit Edit or create new file (start fzf if no arg) 225 | -l, --list List all file 226 | -d, --dir List all directory 227 | -p, --print Print file content on screen (start fzf if no arg) 228 | -s, --search Search all file for a single keyword (start fzf if no arg) 229 | -t, --snippet Copy snippet to clipboard and print to screen 230 | -i, --info How to write snippet and list of hotkeys 231 | -h, --help Show this help page 232 | 233 | example: 234 | ${0##*/} 235 | ${0##*/} 7z.sh 236 | ${0##*/} shellcmd/awk.sh 237 | ${0##*/} -p 238 | ${0##*/} -p foo.md 239 | ${0##*/} -p cheatsheet/shellcmd/awk.sh 240 | ${0##*/} -e 241 | ${0##*/} -e cheatsheet/shellcmd/awk.sh 242 | ${0##*/} -e newfile.sh 243 | ${0##*/} -e newdir/newfile.sh 244 | ${0##*/} -a append this msg to my scratch paper 245 | ${0##*/} -s 246 | ${0##*/} -s keyword 247 | 248 | savepath: created files are saved to ~/.config/notekami 249 | EOF 250 | } 251 | 252 | if [ "$1" = -h ] || [ "$1" = --help ]; then 253 | helpmsg 254 | exit 0 255 | elif [ -z "$1" ]; then 256 | mytui 257 | elif [ "$1" = -A ] || [ "$1" = --audit ]; then 258 | mkdir -p "$(dirname "$myfile")" 259 | [ -z "$(tail -n 1 "$myfile")" ] || printf "\n" >> "$myfile" 260 | printf "%s\n\n" "#### $timestamp" >> "$myfile" 261 | "${EDITOR:-nano}" +999999 "$myfile" 262 | elif [ "$1" = -a ] || [ "$1" = --auto ]; then 263 | [ -z "$2" ] && echo 'type in a note entry' && exit 264 | mkdir -p "$(dirname "$myfile")" 265 | shift 266 | input="$*" 267 | [ -z "$(tail -n 1 "$myfile" 2>/dev/null)" ] || printf "\n" >> "$myfile" 268 | printf "%s\n" "#### $timestamp" >> "$myfile" 269 | printf "%s\n" "$input" >> "$myfile" 270 | elif [ "$1" = -d ] || [ "$1" = --dir ]; then 271 | cd "$mydir" || exit 272 | find . -type d -printf "%P\n" | sort 273 | elif [ "$1" = -l ] || [ "$1" = --list ]; then 274 | cd "$mydir" || exit 275 | find . -type f -printf "%P\n" | sort 276 | elif [ "$1" = -e ] || [ "$1" = --edit ]; then 277 | if [ -z "$2" ]; then 278 | cd "$mydir" || exit 279 | selected="$(fzf -e -i --prompt="notekami >>> edit: " --preview 'bat --color=always -pp {}' --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last,ctrl-k:preview-page-up,ctrl-j:preview-page-down,ctrl-y:preview-up,ctrl-e:preview-down,ctrl-/:change-preview-window(hidden|)')" 280 | [ -z "$selected" ] && exit 281 | "${EDITOR:-nano}" "$selected" 282 | elif [ -f "$mydir/$2" ]; then 283 | "${EDITOR:-nano}" "$mydir/$2" 284 | elif [ -d "$(dirname "$mydir/$2")" ]; then 285 | "${EDITOR:-nano}" "$mydir/$2" 286 | elif [ ! -d "$(dirname "$mydir/$2")" ]; then 287 | echo "create directory [y/n]? " 288 | read -r anwser 289 | printf '\n' 290 | if [[ $anwser =~ ^[Yy]$ ]]; then 291 | mkdir -p "$(dirname "$mydir/$2")" 292 | "${EDITOR:-nano}" "$mydir"/"$2" 293 | fi 294 | fi 295 | elif [ "$1" = -s ] || [ "$1" = --search ]; then 296 | if [ -z "$2" ]; then 297 | selected=$(grep -rnv '^[[:space:]]*$' "$mydir"/* 2>/dev/null \ 298 | | fzf -d / --with-nth 6.. --prompt="notekami >>> search: ") 299 | [ -z "$selected" ] && exit 300 | file_name=$(echo "$selected" | cut -d ':' -f1) 301 | file_num=$(echo "$selected" | cut -d ':' -f2) 302 | if [[ "$TERM_PROGRAM" = tmux ]]; then 303 | tmux new-window -n "search-notes" "${EDITOR:-nano} +$file_num $file_name" 304 | else 305 | "${EDITOR:-nano}" +"$file_num" "$file_name" 306 | fi 307 | else 308 | cd "$mydir" || exit 309 | shift 310 | input="$*" 311 | grep --color=auto -rnH "$input" -- * 2>/dev/null 312 | fi 313 | elif [ "$1" = -i ] || [ "$1" = --info ]; then 314 | myinfo 315 | elif [ "$1" = -t ] || [ "$1" = --snippet ]; then 316 | selected=$(grep -nrH '^####; ' "$mycheatdir"/* | fzf -d ' ' --with-nth 2.. \ 317 | --prompt="notekami ($selected) >>> copy to clipboard: " \ 318 | --bind 'ctrl-f:execute:${EDITOR:-nano} $(echo {} | cut -d: -f1) >/dev/tty' \ 319 | --bind 'ctrl-o:execute:${EDITOR:-nano} +$(echo {} | cut -d: -f2) $(echo {} | cut -d: -f1) >/dev/tty' \ 320 | --bind 'home:first,end:last,tab:down,shift-tab:up' \ 321 | --header 'C-o:edit-line C-f:edit-file C-j/k/n/p|tab/shift-tab:navigate' \ 322 | --preview-window 'down' \ 323 | --preview 'awk '/'"$(echo {} | cut -d " " -f2-)"'/' RS=$"\n\n\n" "$(echo {} | cut -d: -f1)" | \ 324 | bat --color=always -pp -l "$(echo {} | cut -d: -f1 | rev | cut -d. -f1 | rev)"' 325 | ) 326 | [ -z "$selected" ] && exit 327 | file_name="$(echo "$selected" | cut -d: -f1)" 328 | file_ext="$(echo "$selected" | cut -d: -f1 | rev | cut -d. -f1 | rev)" 329 | snippet_title="$(echo "$selected" | cut -d " " -f2-)" 330 | selected_unfilter=$(awk '/'"$snippet_title"'/' RS="\n\n\n" "$file_name") 331 | selected=$(awk '/'"$snippet_title"'/' RS="\n\n\n" "$file_name" | sed -e '/^####;/d' -e '/^###;/d' -e '/^##;/d' ) 332 | echo "$selected_unfilter" | bat --color=always -pp -l "$file_ext" 333 | 334 | # copy to clipboard 335 | # X11=xsel/xclip; wayland=wl-copy; winos(vista+)=clip; cygwin=/dev/clipboard; macos=pbcopy; android=termux 336 | printf %s "$selected" | xsel -b 2>/dev/null || printf %s "$selected" | xclip -selection clipboard -r 2>/dev/null 337 | printf %s "$selected" | wl-copy 2>/dev/null 338 | printf %s "$selected" | clip 2>/dev/null 339 | (printf %s "$selected" > /dev/clipboard) 2>/dev/null 340 | printf %s "$selected" | pbcopy 2>/dev/null 341 | printf %s "$selected" | termux-clipboard-set 2>/dev/null 342 | (printf %s "$selected" | tmux load-buffer -) 2>/dev/null 343 | elif [ "$1" = -p ] || [ "$1" = --print ]; then 344 | if [ -z "$2" ]; then 345 | selected="$(find "$mydir"/ -type f | sort | fzf -d / --with-nth -2.. \ 346 | --preview 'bat --color=always -pp {}' \ 347 | --prompt="notekami >>> print: ")" 348 | [ -z "$selected" ] && exit 349 | bat "$selected" --color=always -pp 350 | # elif [ -f "$mydir/$2" ]; then 351 | else 352 | [ -f "$mydir/$2" ] && bat --color=always -pp "$mydir/$2" || echo 'file does not exist' 353 | fi 354 | else 355 | if command -v bat >/dev/null; then 356 | [ -f "$mydir/$1" ] && bat --color=always -pp "$mydir/$1" || echo 'file does not exist' 357 | else 358 | [ -f "$mydir/$1" ] && cat "$mydir/$1" || echo 'file does not exist' 359 | fi 360 | fi 361 | 362 | -------------------------------------------------------------------------------- /_playerctl,--.mpris.players.media.control: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: control any supported mpris players like mpv, cmus, firefox, chromium 5 | # depend: fzf coreutils playerctl 6 | 7 | mylist() { 8 | cat <>> select a player: ")" 27 | [ -z "$selected" ] && exit 28 | choice="$(mylist | fzf --prompt="playerctl ($selected) >>> select option: ")" 29 | [ -z "$choice" ] && exit 30 | playerctl --player="$selected" "$choice" 31 | -------------------------------------------------------------------------------- /_pulseaudio,--.volume.control: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: control pulseaudio volume 5 | # depend: fzf coreutils libpulse 6 | 7 | mylist() { 8 | cat < "$myfile" 28 | [Classical] |Zeno| Mozart,https://zeno.fm/radio/mozart/ 29 | [Classical] |Zeno| Beethoven,https://zeno.fm/radio/beethoven/ 30 | [Pop] |Zeno| Hits 80s 90s Radio,https://zeno.fm/radio/hits80s90s/ 31 | [Pop] |Zeno| 90s Hits Circuito Dance,https://zeno.fm/radio/90s_HITS/ 32 | {FM 094.7} [Urban Adult Contemporary] (English) The Wave 94.7 FM,https://live.amperwave.net/manifest/audacy-ktwvfmaac-hlsc.m3u8 33 | {FM 102.7} [Top 40 Contemporary] (English) 102.7 KIIS FM,https://ample.revma.ihrhls.com/zc185/34_nbf03dzxgz6e02/playlist.m3u8 34 | {FM 105.9} [HipHop] (English) Power 106,https://18703.live.streamtheworld.com/KPWRAAC.aac 35 | Alternative (BAGeL Radio),https://ais-sa3.cdnstream1.com/2606_128.aac 36 | American Roots (Boot Liquor - SomaFM),http://somafm.com/bootliquor.pls 37 | Celtic (ThistleRadio - SomaFM),http://somafm.com/thistle.pls 38 | Chillout (Groove Salad - SomaFM),http://somafm.com/startstream=groovesalad.pls 39 | Groove Salad Classic (Early 2000s Ambient),https://somafm.com/gsclassic.pls 40 | n5MD Radio (Ambient and Experimental),https://somafm.com/n5md.pls 41 | Vaporwaves [SomaFM],https://somafm.com/vaporwaves.pls 42 | EOF 43 | } 44 | 45 | # use pyradio csv if exist 46 | if [ -f "$HOME/.config/pyradio/stations.csv" ]; then 47 | myfile="$HOME/.config/pyradio/stations.csv" 48 | elif [ -f "$HOME/.config/radiomhysa/stations.csv" ]; then 49 | myfile="$HOME/.config/radiomhysa/stations.csv" 50 | else 51 | myfile="$HOME/.config/radiomhysa/stations.csv" 52 | if [ ! -f "$myfile" ]; then 53 | mkdir -p "$(dirname "$myfile")" 54 | generate_example 55 | fi 56 | fi 57 | 58 | export FZF_DEFAULT_OPTS="-e -i --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last,tab:down,shift-tab:up'" 59 | 60 | mytui() { 61 | selected="$( grep -nH , "$myfile" | sed -e 's/:/,/' -e 's/:/,/' | \ 62 | fzf -d , --with-nth -2 \ 63 | --prompt="radiomhysa: " \ 64 | --bind "ctrl-o:execute:${EDITOR:-nano} +{2} {1} >/dev/tty" \ 65 | --bind "ctrl-f:execute:${EDITOR:-nano} {1} >/dev/tty" \ 66 | --bind 'ctrl-x:execute:playerctl --player=mpv stop >/dev/null 2>&1' \ 67 | --bind "ctrl-r:reload:grep -nH , $myfile | sed -e 's/:/,/' -e 's/:/,/'" \ 68 | --header 'C-x:stop C-o:edit-line C-f:edit-file C-r:reload C-j/k/n/p|tab/shift-tab:navigate' 69 | )" 70 | [ -z "$selected" ] && exit 71 | selected="$(echo "$selected" | cut -d ',' -f4)" 72 | playerctl --player=mpv stop >/dev/null 2>&1 73 | setsid mpv --no-video "$selected" >/dev/null 2>&1 & disown 74 | sleep 0.2 75 | } 76 | 77 | helpmsg() { 78 | cat < 84 | 85 | options: 86 | No argument then start fzf TUI 87 | -l, --list List all stream 88 | -e, --edit Edit radio list 89 | -s, --search Search keyword 90 | -h, --help Show help page 91 | 92 | example: 93 | ${0##*/} 94 | ${0##*/} -s keyword 95 | 96 | EOF 97 | } 98 | 99 | if [ "$1" = -h ] || [ "$1" = --help ]; then 100 | helpmsg 101 | exit 0 102 | elif [ -z "$1" ]; then 103 | mytui 104 | elif [ "$1" = -l ] || [ "$1" = --list ]; then 105 | cat "$myfile" 106 | elif [ "$1" = -e ] || [ "$1" = --edit ]; then 107 | "$EDITOR" "$myfile" 108 | elif [ "$1" = -s ] || [ "$1" = --search ]; then 109 | grep --color=auto -in "$2" -- "$myfile" 2>/dev/null 110 | else 111 | helpmsg 112 | exit 1 113 | fi 114 | -------------------------------------------------------------------------------- /_reverbeats,--.loop.ambient.sound: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: play and loop ambient background noise sound files 5 | # demo: https://youtu.be/eANLqIhOgWw 6 | # depend: fzf coreutils util-linux playerctl mpv mpv-mpris findutils 7 | # reff: https://downloads.khinsider.com/game-soundtracks/album/x-men-vs.-street-fighter-1996 8 | # https://www.chosic.com/free-music/sound-effects/ 9 | # https://www.storyblocks.com/audio/search/jingle-bells 10 | # https://pixabay.com/music/search/lofi/ 11 | # https://pixabay.com/sound-effects/ 12 | 13 | export FZF_DEFAULT_OPTS="-e -i --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last,tab:down,shift-tab:up'" 14 | 15 | mydir="$HOME/.config/reverbeats" 16 | [ ! -d "$mydir" ] && mkdir -p "$mydir" 17 | 18 | selected="$( 19 | find "$mydir" -type f | sort | \ 20 | fzf -d / --with-nth -2.. --prompt="reverbeats: " \ 21 | --bind 'ctrl-x:execute:playerctl --player=mpv stop >/dev/null 2>&1' \ 22 | --bind "ctrl-r:execute:playerctl --player=mpv stop >/dev/null 2>&1 ; cd $mydir && setsid mpv --no-video --loop \ 23 | \"\$(find . -type f | shuf -n 1)\" >/dev/null 2>&1 & disown >/dev/tty" \ 24 | --header 'C-x:stop C-r:random C-j/k/n/p|tab/shift-tab:navigate' 25 | )" 26 | [ -z "$selected" ] && exit 27 | playerctl --player=mpv stop >/dev/null 2>&1 28 | setsid mpv --no-video --loop "$selected" >/dev/null 2>&1 & disown 29 | sleep 0.2 30 | -------------------------------------------------------------------------------- /_variety,--.wallpaper.changer: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: variety wallpaper changer with fzf 5 | # depend: fzf variety coreutils util-linux findutils chafa 6 | 7 | export FZF_DEFAULT_OPTS="-e -i --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index \ 8 | --bind 'ctrl-x:execute:variety --pause 2>/dev/null >/dev/tty' \ 9 | --bind 'ctrl-r:execute:variety --resume 2>/dev/null >/dev/tty' \ 10 | --bind 'alt-n:execute:variety --next 2>/dev/null >/dev/tty' \ 11 | --bind 'alt-p:execute:variety --previous 2>/dev/null >/dev/tty' \ 12 | --bind 'alt-f:execute:variety --favorite 2>/dev/null >/dev/tty' \ 13 | --bind 'shift-delete:execute:variety --trash 2>/dev/null >/dev/tty' \ 14 | --bind 'shift-delete:execute:variety --trash 2>/dev/null >/dev/tty' \ 15 | --bind 'home:first,end:last,tab:down,shift-tab:up' \ 16 | --header 'C-x:pause C-r:resume A-n:next A-p:prev A-f:favorite S-Delete:trash C-j/k/n/p:navigate' 17 | " 18 | 19 | mylist() { 20 | cat </dev/null 35 | ;; 36 | previous) 37 | variety --previous 2>/dev/null 38 | ;; 39 | trash) 40 | variety --trash 2>/dev/null 41 | ;; 42 | pause) 43 | variety --pause 2>/dev/null 44 | ;; 45 | resume) 46 | variety --resume 2>/dev/null 47 | ;; 48 | favorite) 49 | variety --favorite 2>/dev/null 50 | ;; 51 | set) 52 | selected=$( (find ~/Pictures/Wallpapers -type f ; find ~/.config/variety/Favorites/ -type f) | \ 53 | fzf -d / --with-nth -2.. --prompt="variety: " --preview-window=right,70% --preview='chafa {}' ) 54 | [ -z "$selected" ] && exit 55 | variety --set="$selected" 2>/dev/null 56 | ;; 57 | esac 58 | 59 | -------------------------------------------------------------------------------- /_window-switcher,--.jump.to.a.running.window: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: fzf switch to another active window 5 | # depend: fzf awk wmctrl coreutils 6 | 7 | export FZF_DEFAULT_OPTS="-e -i --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last,tab:down,shift-tab:up'" 8 | wmctrl -i -a "$(wmctrl -l | awk '! /fzf-nova/ && $2 != "-1" {print $0}' | fzf -d ' ' --with-nth 5.. --prompt="window switcher: " | cut -d' ' -f1)" 9 | -------------------------------------------------------------------------------- /_zinger,--.copy.meme.quotes.to.clipboard: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: copy quotes/memes to clipboard via fzf 5 | # demo: https://youtu.be/YGsq4ogwmBk 6 | # depend: fzf grep sed coreutils 7 | # xsel (or xclip,wl-copy,tmux,clip,clipboard,pbcopy,termux-clipboard-set) 8 | # nano (or vim,vi,nvim,micro,kak,helix,mcedit,emacs ...etc) 9 | 10 | myfile="$HOME/.config/zinger/zingers.txt" 11 | 12 | generate_example() { 13 | cat < "$myfile" 14 | If Senzo Tanaka Is His Shidoshi, Then Show Us The Dim Mak ;; Movie Hollywood Bloodsport Black Dragon boys 15 | Rule Of Acquisition #1 Once You Have Their Money, You Never Give It Back. ;; TVShow Star Trek Deep Space Nine DS9 Ferengi 16 | Only Someone With The Sharingan And Kekkei Genkai Can Defeat Me ;; Anime Naruto Ninja Itachi Uchiha Vs Kakashi Hatake 17 | https://i.imgur.com/CGQJxHi.jpg ;; adblocker thug complains website goes down image meme ad revenue 18 | https://www.cnn.com/2013/05/22/tech/web/pronounce-gif/index.html ;; Animated Gif jif image pronounced pronunciation english dictionary word creator oxford 19 | This Is Your Last Chance. After This, There Is No Turning Back. ;; Movie Hollywood The Matrix Neo Morpheus 20 | EOF 21 | } 22 | 23 | if [ ! -f "$myfile" ]; then 24 | mkdir -p "$(dirname "$myfile")" 25 | generate_example 26 | fi 27 | 28 | export FZF_DEFAULT_OPTS="-e -i --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index" 29 | selected="$(grep -nvH '^[[:space:]]*$' "$myfile" \ 30 | | fzf --prompt "zinger: " --delimiter ':' --with-nth 3.. \ 31 | --bind "ctrl-r:reload:grep -nvH '^[[:space:]]*$' $myfile" \ 32 | --bind "ctrl-o:execute:${EDITOR:-nano} +{2} {1} >/dev/tty" \ 33 | --bind "ctrl-f:execute:${EDITOR:-nano} {1} >/dev/tty" \ 34 | --bind 'home:first,end:last,tab:down,shift-tab:up' \ 35 | --header 'C-o:edit-line C-f:edit-file C-r:reload C-j/k/n/p|tab/shift-tab:navigate' \ 36 | )" 37 | [ -z "$selected" ] && exit 38 | selected="$(echo "$selected" | cut -d ':' -f3-| sed -e s/\;\;\.\*\$// | sed 's/^[ \t]*//;s/[ \t]*$//')" 39 | printf %s "$selected" | xsel -b 2>/dev/null || printf %s "$selected" | xclip -selection clipboard -r 2>/dev/null 40 | printf %s "$selected" | wl-copy 2>/dev/null 41 | printf %s "$selected" | clip 2>/dev/null 42 | (printf %s "$selected" > /dev/clipboard) 2>/dev/null 43 | printf %s "$selected" | pbcopy 2>/dev/null 44 | printf %s "$selected" | termux-clipboard-set 2>/dev/null 45 | (printf %s "$selected" | tmux load-buffer -) 2>/dev/null 46 | -------------------------------------------------------------------------------- /fzf-nova: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # author: gotbletu (@youtube|github|odysee) 3 | # https://www.youtube.com/user/gotbletu 4 | # desc: terminal emulator + fzf to launch scripts, a replacement for dmenu or rofi 5 | # demo: https://youtu.be/8SqakfCSzQk 6 | # depend: fzf findutils coreutils util-linux 7 | # reff: xterm config https://www.youtube.com/watch?v=mAUQsNUnk9I 8 | # note: to add your own, just drop in a script in the same folder as fzf-nova. 9 | # name it e.g: _myamazingscript,--.a.cool.description 10 | 11 | #### source shellrc to get $PATH and $EDITOR variable 12 | #### if fzf-nova is already in your $PATH then you dont have to put point /path/to/...etc. 13 | #### pick a terminal command to bind to a hotkey (e.g super+space): 14 | 15 | ## if fzf-nova is NOT in your $PATH then include the script location 16 | # xterm -T fzf-nova -geometry 120x20+300+300 -fs 14 -e bash -c "source ~/.bashrc &>/dev/null && /path/to/fzf-nova" 17 | # xfce4-terminal --title fzf-nova --geometry 120x20+350+300 --font 14 --execute bash -c "source ~/.bashrc &>/dev/null && /path/to/fzf-nova" 18 | # alacritty -T fzf-nova -o "window.dimensions.columns=90" "window.dimensions.lines=20" "window.position.x=350" "window.position.y=200" -e bash -c "source ~/.bashrc &>/dev/null && /path/to/fzf-nova" 19 | 20 | ## if fzf-nova is already in your bash $PATH 21 | # xterm -T fzf-nova -geometry 120x20+300+300 -fs 14 -e bash -c "source ~/.bashrc &>/dev/null && fzf-nova" 22 | # xfce4-terminal --title fzf-nova --geometry 120x20+350+300 --font 14 --execute bash -c "source ~/.bashrc &>/dev/null && fzf-nova" 23 | # alacritty -T fzf-nova -o "window.dimensions.columns=90" "window.dimensions.lines=20" "window.position.x=350" "window.position.y=200" -e bash -c "source ~/.bashrc &>/dev/null && fzf-nova" 24 | 25 | ## for TMUX users (prefix + TAB to activate popup) 26 | # bind-key Tab capture-pane \; save-buffer /tmp/tmux-buffer \; delete-buffer \; display-popup -w 80% -h 60% -E "fzf-nova" 27 | # or 28 | # bind-key Tab capture-pane \; save-buffer /tmp/tmux-buffer \; delete-buffer \; display-popup -w 80% -h 60% -E "/path/to/fzf-nova" 29 | 30 | export FZF_DEFAULT_OPTS="-e -i -d '_' --with-nth 2.. --info=hidden --layout=reverse --scroll-off=5 --tiebreak=index --bind 'home:first,end:last,tab:down,shift-tab:up'" 31 | mydir="${0%/*}" 32 | selected="$( 33 | find "$mydir" -type f -name '_*' -exec basename {} \; \ 34 | | sort | sed 's@\.@ @g' | column -t -s ',' \ 35 | | fzf --prompt='fzf-nova: ' | cut -d ' ' -f1 36 | )" 37 | [ -z "$selected" ] && exit 38 | eval "${mydir}/${selected},*" 39 | --------------------------------------------------------------------------------