0x165c…5e14

All memos sent from and to 0x165c…5e14.

I never EVER thought that I would be in a position where I have to beg for help but I just don't know what else to do. I've been going through the shittiest times ever in my life now, I have lost my job due to fucking BUDGET CUTS from my company. I would forever be thankful if you can send me a few ETH, thank you for reading ✌️
Touto transakci zapsanou do blockchainu potvrzuji existenci smlouvy pred koncem roku 2022. Hash hodnota (SHA256) souboru: 84614ef57752ed8d42fd34c2265eeda3c2e45d1750aa8748d6bd5e8a3810120b
https://github.com/danimesq/danimesq/blob/main/README.md ### Hi there 👋🥰 [![🌳Linktree](https://img.shields.io/badge/🌳Linktree-4285F4?logo=google-chrome&style=for-the-badge&logoColor=fff)](https://linktr.ee/idaniella) [![🐦Twitter](https://img.shields.io/badge/Twitter-1DA1F2?logo=twitter&style=for-the-badge&logoColor=fff)](https://twitter.com/DaniMesqEN) [![📷Instagram](https://img.shields.io/badge/instagram-idanimesq-informational?style=flat&logo=instagram&logoColor=white&color=E4405F)](https://instagram.com/idanimesq) <center><img width="500px" src="https://ipfs.io/ipfs/QmbDivVxfP1pJfJTojvuyCtuYqqBcFRBE46BToLqsSxCv3/nft.png"/> <img width="300px" src="https://ipfs.io/ipfs/QmUEn9sGy2DTmaV8azoQQsBdgffriAjsakYcqfMrjQN5sU/nft.jpg"/></center> #### 📈 GitHub Statistics <p align="center" style="witdh:100%"> <img src="https://github-profile-trophy.vercel.app/?username=danimesq&theme=dracula&no-frame=false&no-bg=false&margin-w=4&row=1" /> </p> <!-- ETHEREUM - captioning: --> <!-- [1 normal "S" trophy] Multilanguage - Rainbow Lang User - 19pt --> <!-- [1 normal "S" trophy] Organizations - Jack of all Trades - 28pt --> <!-- [3 "S" gold trophies] Issues - God Issuer - 3.5kpt --> <!-- [1 gold "S" trophy] Commits - Super Committer - 1.9pt --> <!-- [1 gold "S" trophy] PullRequest - Super Puller - 221pt --> <!-- [3 blue "A" trophies] Repositories - Ultra Repo Creator - 73pt --> <p align="center" style="witdh:100%"> <img src="https://github-readme-stats.vercel.app/api?username=danimesq&show_icons=true&count_private=true&hide_title=true&theme=dracula" /> </p> <!-- ETHEREUM - captioning: --> <!-- Total Stars Earned: 5 --> <!-- Total Commits (2022): 1.9k --> <!-- Total PRs: 221 --> <!-- Total Issues: 3.5k --> <!-- Contributed to (last year): 180 --> <!-- A++ --> <p align="center" style="witdh:100%"> <img src="https://github-readme-stats.vercel.app/api/top-langs/?username=danimesq&langs_count=6&layout=compact&theme=dracula" /> </p> <!-- ETHEREUM - captioning: --> <!-- Most Used Languages --> <!-- 74.54% JavaScript --> <!-- 17.44% HTML --> <!-- 6.23% CSS --> <!-- 1.79% Shell --> Statistics thanks to inspiration from [@federicoiosue](https://github.com/federicoiosue) <a href="https://github.com/harish-sethuraman/readme-components"> <img src="https://readme-components.vercel.app/api?component=stackoverflow&stackoverflowid=5623661&textfill=black&fill=linear-gradient%2862deg%2C%20%238EC5FC%200%25%2C%20%23E0C3FC%20100%25%29%3B%0A"> </a> <!-- ETHEREUM - captioning: --> <!-- dani 'SO learn value newbies' --> <!-- Brasil --> <!-- Reputation: 123 --> <!-- Answers: 8 --> <!-- Questions: 23 --> <!-- Profile views: 68 --> <!-- Badges: 0 gold, 0 silver, 14 bronze --> - 🤗 Pronouns: she/her | Woman 🏳️‍⚧️ | Lesbian 🏳️‍🌈 - 💬 Ask me about democratization of tools and inclusiveness in the tech space ❣ - 🔭 I’m currently working on Bash, Javascript at [Floflis](https://github.com/Floflis/) (but the focus is Rust) - 🌱 I’m currently learning Python, Solidity (in my opinion EVM should accept languages like Bash and Python not limited to Solidity; that's why I support [Cartesi](https://cartesi.io/)) - 📫 How to reach me: [mesquitadaniella@proton.me](mailto:mesquitadaniella@proton.me) ---- 1. I give new life to old, once abandoned software/tools; 2. I give birth to brand new, unthought software/tools that gives new life. ---- ### Table of Contents - [Languages](#languages) - [Back-end development](#back-end-development) - [App development](#app-development) - [Interested in](#interested-in) - [Currently learning](#currently-learning) - [🏢 other Organizations](#-other-organizations) - [My personal repos](#my-personal-repos) - [Personal: Gaming/Metaverse](#personal-gamingmetaverse) - [My thoughtful questions](#my-thoughtful-questions) - [My thoughtful questions about the status of programming and computing in general](#about-the-status-of-programming-and-computing-in-general) - [My thoughtful questions about the status of tech](#about-the-status-of-tech) - [My experiments](my-experiments) - [💎🌱 Featured organizations & their projects](#-featured-organizations--their-projects) - <img width="16px" src="https://avatars.githubusercontent.com/u/18749146?s=200&v=4"/> [Floflis](#-floflis) - <img width="16px" src="https://avatars.githubusercontent.com/u/38830931?s=200&v=4"/> [Plasmmer](#-plasmmer) - <img width="16px" src="https://avatars.githubusercontent.com/u/17116432?s=200&v=4"/> [Plasmmer Developers](#-plasmmer-developers) - <img width="16px" src="https://avatars.githubusercontent.com/u/88293257?s=200&v=4"/> [FrameworkJS](#-frameworkjs) - <img width="16px" src="https://avatars.githubusercontent.com/u/44840459?s=200&v=4"/> [Eventlr](#-eventlr) - <img width="16px" src="https://avatars.githubusercontent.com/u/94411988?s=200&v=4"/> [Firedoge/Web3 HQ](#-firedogeweb3-hq) - <img width="16px" src="https://avatars.githubusercontent.com/u/50565258?s=200&v=4"/> [HTML5Apps Platform](#-html5apps-platform) - <img width="16px" src="https://avatars.githubusercontent.com/u/89318607?s=200&v=4"/> [Floflis Screens](#-floflis-screens) - <img width="16px" src="https://avatars.githubusercontent.com/u/26726098?s=200&v=4"/> [USV Format](#-usv-format) - <img width="16px" src="https://avatars.githubusercontent.com/u/38340120?s=200&v=4"/> [Orgut/Peeper](#-orgutpeeper) - <img width="16px" src="https://avatars.githubusercontent.com/u/38709808?s=200&v=4"/> [Communicator](#-communicator) - <img width="16px" src="https://avatars.githubusercontent.com/u/44071742?s=200&v=4"/> [NeTVision](#-netvision) - <img width="16px" src="https://avatars.githubusercontent.com/u/58575200?s=200&v=4"/> [01 VCS](#-01-vcs) - <img width="16px" src="https://avatars.githubusercontent.com/u/102428033?s=200&v=4"/> [FilePeace](#-filepeace) - <img width="16px" src="https://avatars.githubusercontent.com/u/80379307?s=200&v=4"/> [Gamlr](#-gamlr) These are some of my projects that I turned into organizations. Yes, there are no people on these organizations other than me myself, unfortunately (people don't join and avoid even their selves nowadays). TDAH have its dangers and struggles but also have its good side, which give me a huge amount of creativity and brand new projects every year (downside: not finishing a 4-day-long project and already jumping into a brand new idea that popped out) ---- #### Languages ![Bash](https://img.shields.io/badge/-Bash-1f425f?style=for-the-badge&logo=image%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE3MDg2QTAyQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE3MDg2QTAzQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTcwODZBMDBBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTcwODZBMDFBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciLz4gPC9yZGY6RGVzY3JpcHRpb24%2BIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2BIDw%2FeHBhY2tldCBlbmQ9InIiPz6lm45hAAADkklEQVR42qyVa0yTVxzGn7d9Wy03MS2ii8s%2BeokYNQSVhCzOjXZOFNF4jx%2BMRmPUMEUEqVG36jo2thizLSQSMd4N8ZoQ8RKjJtooaCpK6ZoCtRXKpRempbTv5ey83bhkAUphz8fznvP8znn%2B%2F3NeEEJgNBoRRSmz0ub%2FfuxEacBg%2FDmYtiCjgo5NG2mBXq%2BH5I1ogMRk9Zbd%2BQU2e1ML6VPLOyf5tvBQ8yT1lG10imxsABm7SLs898GTpyYynEzP60hO3trHDKvMigUwdeaceacqzp7nOI4n0SSIIjl36ao4Z356OV07fSQAk6xJ3XGg%2BLCr1d1OYlVHp4eUHPnerU79ZA%2F1kuv1JQMAg%2BE4O2P23EumF3VkvHprsZKMzKwbRUXFEyTvSIEmTVbrysp%2BWr8wfQHGK6WChVa3bKUmdWou%2BjpArdGkzZ41c1zG%2Fu5uGH4swzd561F%2BuhIT4%2BLnSuPsv9%2BJKIpjNr9dXYOyk7%2FBZrcjIT4eCnoKgedJP4BEqhG77E3NKP31FO7cfQA5K0dSYuLgz2TwCWJSOBzG6crzKK%2BohNfni%2Bx6OMUMMNe%2Fgf7ocbw0v0acKg6J8Ql0q%2BT%2FAXR5PNi5dz9c71upuQqCKFAD%2BYhrZLEAmpodaHO3Qy6TI3NhBpbrshGtOWKOSMYwYGQM8nJzoFJNxP2HjyIQho4PewK6hBktoDcUwtIln4PjOWzflQ%2Be5yl0yCCYgYikTclGlxadio%2BBQCSiW1UXoVGrKYwH4RgMrjU1HAB4vR6LzWYfFUCKxfS8Ftk5qxHoCUQAUkRJaSEokkV6Y%2F%2BJUOC4hn6A39NVXVBYeNP8piH6HeA4fPbpdBQV5KOx0QaL1YppX3Jgk0TwH2Vg6S3u%2BdB91%2B%2FpuNYPYFl5uP5V7ZqvsrX7jxqMXR6ff3gCQSTzFI0a1TX3wIs8ul%2Bq4HuWAAiM39vhOuR1O1fQ2gT%2F26Z8Z5vrl2OHi9OXZn995nLV9aFfS6UC9JeJPfuK0NBohWpCHMSAAsFe74WWP%2BvT25wtP9Bpob6uGqqyDnOtaeumjRu%2ByFu36VntK%2FPA5umTJeUtPWZSU9BCgud661odVp3DZtkc7AnYR33RRC708PrVi1larW7XwZIjLnd7R6SgSqWSNjU1B3F72pz5TZbXmX5vV81Yb7Lg7XT%2FUXriu8XLVqw6c6XqWnBKiiYU%2BMt3wWF7u7i91XlSEITwSAZ%2FCzAAHsJVbwXYFFEAAAAASUVORK5CYII%3D&logoColor=fff) ![JavaScript](https://img.shields.io/badge/-Javascript-c2ad07?style=for-the-badge&logo=javascript&logoColor=fff) ![HTML5](https://img.shields.io/badge/-HTML5-E34F26?style=flat-square&logo=html5&logoColor=white) ![CSS3](https://img.shields.io/badge/-CSS3-1572B6?style=flat-square&logo=css3) ![Json](https://img.shields.io/badge/-JSON-838383?style=flat-square&logo=json) - ![XML](https://img.shields.io/badge/-XML-black?style=flat-square) ![Emmet](https://img.shields.io/badge/-Emmet-black?style=flat-square) ##### Back-end development ![Node.js](https://img.shields.io/badge/-node.js-339933?style=for-the-badge&logo=node.js&logoColor=fff) ? (Hey, I'm still learning NodeJS 🤭) ##### App development ![Electron](https://img.shields.io/badge/-Electron-47848F?style=for-the-badge&logo=electron&logoColor=fff) ##### Interested in: ![PHP](https://img.shields.io/badge/-PHP-1a165f?style=flat-square&logo=php) ![MySQL](https://img.shields.io/badge/-MySQL-5299cc?style=flat-square&logo=mysql) ![SQLite](https://img.shields.io/badge/-SQLite-383838?style=flat-square&logo=sqlite) ![Solidity](https://img.shields.io/badge/-Solidity-383838?style=flat-square&logo=solidity) ![ERC20](https://img.shields.io/badge/-Ethereum%20ERC20-383838?style=flat-square&logo=ethereum) ![ReactNative](https://img.shields.io/badge/-React/React%20Native-575d91?style=flat-square&logo=react) ![Firebase](https://img.shields.io/badge/-Firebase-b36800?style=flat-square&logo=firebase) ![Rust](https://img.shields.io/badge/-Rust-f46623?style=flat-square&logo=rust) - ![Canvas](https://img.shields.io/badge/-Canvas-black?style=flat-square) ![WebSocket](https://img.shields.io/badge/-WebSocket-black?style=flat-square) ![Batch](https://img.shields.io/badge/-Batch/MsDos-black?style=flat-square) ![Regedit](https://img.shields.io/badge/-Regedit-black?style=flat-square) ##### Currently learning ![Python](https://img.shields.io/badge/-Python-0c0c0c?style=flat-square&logo=python) ![Nodejs](https://img.shields.io/badge/-Nodejs-031c03?style=flat-square&logo=Node.js) ---- #### 🏢 other Organizations: - <img width="16px" src="https://avatars.githubusercontent.com/u/89318607?s=200&v=4"/> [Floflis Screens](https://github.com/FloflisScreens) - <img width="16px" src="https://avatars.githubusercontent.com/u/77433541?s=200&v=4"/> [UniOS](https://github.com/UniOSeth) - <img width="16px" src="https://avatars.githubusercontent.com/u/38340090?s=200&v=4"/> [Floflis Pull](https://github.com/FloflisPull) - <img width="16px" src="https://avatars.githubusercontent.com/u/27725719?s=200&v=4"/> [DCRS](https://github.com/DCRS) - <img width="16px" src="https://avatars.githubusercontent.com/u/20750023?s=200&v=4"/> [Universav](https://github.com/Universav) - <img width="16px" src="https://avatars.githubusercontent.com/u/21290074?s=200&v=4"/> [AddressTower](https://github.com/AddressTower) - <img width="16px" src="https://avatars.githubusercontent.com/u/33704763?s=200&v=4"/> [UltraCreator](https://github.com/UltraCreator) - <img width="16px" src="https://avatars.githubusercontent.com/u/80379087?s=200&v=4"/> [Tamigucho](https://github.com/Tamigucho) - <img width="16px" src="https://avatars.githubusercontent.com/u/80556987?s=200&v=4"/> [XPoke](https://github.com/XPokeProject) #### My personal repos * [PRIVATE] 💉 [Vaccines](https://github.com/danimesq/Personal-Vaccines) * [PRIVATE] 🏦 [OpenBanking](https://github.com/danimesq/Personal-OpenBanking) * [PRIVATE] 📔 [QuickEdit phone notes](https://github.com/danimesq/quickedit) * [PRIVATE] 🖥 [my Desktop files](https://github.com/danimesq/DesktopFiles) * [PRIVATE] 🖥🪟 [my Windows Desktop files](https://github.com/danimesq/DesktopFilesWindows) * [PRIVATE] [dossier1](https://github.com/danimesq/dossier1) * [PRIVATE] [DossierTicketsTransfers](https://github.com/danimesq/DossierTicketsTransfers) * [PRIVATE] [DossierTicketsInternacoes](https://github.com/danimesq/DossierTicketsInternacoes) * [PRIVATE] 📒 [DossierLog](https://github.com/danimesq/DossierLog) * 🐠 [aquarium-site](https://github.com/danimesq/aquarium-site) * [PRIVATE] 🎵 [HinosFav](https://github.com/danimesq/HinosFav) * [investpad](https://github.com/danimesq/investpad) * [PRIVATE] [PhoneNotifications](https://github.com/danimesq/PhoneNotifications) * [PRIVATE] [oldnotes](https://github.com/danimesq/oldnotes) * [PRIVATE] [Presentation.pptx](https://github.com/danimesq/Presentation.pptx) * [PRIVATE] [Printer-do.pptx](https://github.com/danimesq/Printer-do.pptx) * [PRIVATE] [House.pptx](https://github.com/danimesq/House.pptx) ##### Personal: Gaming/Metaverse * <img width="16px" src="https://cdn.icon-icons.com/icons2/851/PNG/512/poke_trainer_three_star_icon-icons.com_67512.png"/> [My PokeJourney tasks/guides](https://github.com/danimesq/PokeJourneyTasks) * <img width="16px" src="https://upload.wikimedia.org/wikipedia/commons/b/bf/Gameboy_green_icon.svg"/> [My PokeJourneys GB](https://github.com/danimesq/journeys-gb) * <img width="16px" src="https://www.kindpng.com/picc/m/33-332756_gameboy-icons-game-boy-advance-icon-png-transparent.png"/> [My PokeJourneys GBA](https://github.com/danimesq/journeys-gba) * <img width="16px" src="https://upload.wikimedia.org/wikipedia/commons/5/55/Black_Nintendo_DS_icon.png"/> [My PokeJourneys DS](https://github.com/danimesq/journeys-ds) * <img width="16px" src="https://www.kindpng.com/picc/m/24-248262_letter-x-logo-pokemon-x-logo-hd-png.png"/> [My PokeJourneys Pokemon X](https://github.com/danimesq/journeys-x) * My PokeJourneys Pokemon AquaSapphire * My PokeJourneys Pokemon Let's Go Eevee * [PRIVATE] [My PokeJourneys old emulated Pokemon Sword](https://github.com/danimesq/journeys-sword-old) * <img width="16px" src="https://seeklogo.com/images/P/pokemon-sword-logo-F867D564B7-seeklogo.com.png"/> [My PokeJourneys Pokemon Sword](https://github.com/danimesq/journeys-sword) * My PokeJourneys Pokemon Shining Pearl * My PokeJourneys Pokemon Legends: Arceus * <img width="16px" src="https://assets-prd.ignimgs.com/2022/08/03/pokemon-scarlet-1659542292648.jpg?width=300&crop=1%3A1%2Csmart"/> [My PokeJourneys Pokemon Scarlet](https://github.com/danimesq/journeys-scarlet) * <img width="16px" src="https://user-images.githubusercontent.com/38465129/72480309-0dede180-37c5-11ea-9138-793b79713232.png"/> [My Minecraft world of 2017](https://github.com/danimesq/MinecraftWorld) * [My new Minecraft world of 2021](https://github.com/danimesq/MinecraftWorld2) ---- #### My thoughtful questions... ##### ...about the status of programming and computing in general: * Why don't we get inspired by git and (urgently, gently) de-duplicate the Web? In 100 years, we'll have more bits than atoms on Earth * Why having to copy and paste your bio between sites (and leaving leftovers in sites you don't remember often) just to update a number for your birthday age, when they could be centered in a single place where other sites gets the plain text from? * Ethereum came to question Bitcoin's limitations. But, currently, there are no layer1 projects LEGITIMATELY questioning Ethereum other than BrightID's IDChain. Cardano? Solana? All other "ethereum-killer"s? They are to Ethereum just what BitcoinCash/Litecoin are to Bitcoin. * The line between a programmer and a "scripter" should be blurred, merged. More than that, I believe Bash/Shell/visual-event-sheet "scripters" (programmers) are way more glorious due to their frugal style/abilities (this "their" is "our" because I'm part of them, us; but for the sake of my mind wellbeing I want not to forget being humble). * Programming should be known for the visual event-sheets, not bytes/hex/{}/();/notepad brainf&%c * Linux distros should be developed not with a eyeglass, an idea to fix other distros, coffee and some abilities; they should be developed with love. That's why they should be built 100% in Bash/Shell+JS/HTML/CSS (lets democratize visual event-sheets) and that's why "The year of the Linux in Desktop" did never came. * Why aren't our screenshot files split in parts, containing HTML/CSS/SVG replacing lots of pixels? This could be also merged/intersected with my idea of file de-duplication. * Why having a whole new separated video coded to react/duet/reply to another video, when videos could simply be containers building on the top of other? You could deduplicate (and save) a lot of (mega)bytes by just linking a video on the video that wants to insert it. Also, mentioning the previous item: why lots of pixels to have texts/figures on your videos when they could simply be in HTML/CSS/SVG (even the transitions, in CSS)? * Git does deduplicate texty files such as HTML/CSV/XML/etc. Shouldn't it also deduplicate the audio's wave forms, images and the same as video frames+audio? Git was primarily made for developers (which mostly uses texty files, obviously), but what about LFS and the app/game's assets? Also, git have the potential for uses beyond the dev space. These advanced deduplicing capabilities shouldn't necessarily be added to git, but to a layer2 for it (or in competitors such as Pijul or a layer2 for both git and/or these competitors/alternatives) * Shouldn't Linux support various types of symlinks or even someone make a filesystem heavily based on deduplication? For example, a single symlink merging bytes from more than one file. * If you delete a file, rename its containing folder and from the recycle bin you restore it: how will your filesystem/explorer app handle this? ##### ...about the status of tech: * Emojis represents the humanity's expressions; so why the curation of brand new emojis aren't widely open (through a DAO for example)? ---- #### My experiments * davidApps: small HTML5 apps implementing features the "native" apps don't (remember how Plasmmer's [Future1984](https://github.com/Plasmmer/Future1984) PC should start before becoming a standard) These apps: [davidLauncher](https://github.com/FloflisScreens/davidLauncher) (hybrid launcher for KaiOS, Android and Firefox OS), [davidWriter](https://github.com/Floflis/davidWriter) (introduce live git snapshot inside any texty file!), [davidExplorer](https://github.com/Floflis/davidExplorer) (hybrid file explorer for Desktop/Mobile), [davidCamera](https://github.com/Floflis/davidCamera) (use software for videos with the same quality of photos!) #### 💎🌱 Featured organizations & their projects ##### <img width="16px" src="https://avatars.githubusercontent.com/u/18749146?s=200&v=4"/> [Floflis](https://github.com/Floflis) Beyond the Web3, Floflis is leading operating systems at what an modern OS should look like. You can contribute with visual event-sheets and Bash. * [Personal-Issues](https://github.com/Floflis/Personal-Issues) [WIP] Manage personal issues & development as if your life were a git project * [Adventus](https://github.com/Floflis/Adventus) A window manager written in Javascript, HTML5 and CSS3. This fork, Adventus, implements GTK-compatible CSS classes to window elements, and other improvements such as compatibility with Framlr for Electron. If its the desire of the original author, this fork can cease by being merged upstream. * [AppPlayer-Electron](https://github.com/Floflis/AppPlayer-Electron) Preview Construct 2 apps/games in a Electron prebuilt exe - as if Electron were a normal browser! * [floapps](https://github.com/Floflis/floapps) Have AppImage? Now are you missing support for .apps, .game and .html5 files? * [batsh-shell](https://github.com/Floflis/batsh-shell) [WIP] Experimental shell written in shell (metalanguage) to parse the batsh language * [SRC At ETH💎💌] [Floflis-Central](https://github.com/Floflis/Floflis-Central) [WIP] More than a settings aggregator; its a dashboard for your web3 profile. * [rmv](https://github.com/Floflis/rmv) Like the "rm" command, but safer * [linux-icon-builder](https://github.com/Floflis/linux-icon-builder) Enter an source image (min. 512x512) and get it resized into different sizes and added into a folder you can patch as icon theme on Linux. * [Floflis-Packager](https://github.com/Floflis/Floflis-Packager) [WIP] Make a working and lightweight Electron app for Floflis. * [WFS](https://github.com/Floflis/WFS) [WIP] Web File System - a working file system for web OSes, using IPFS for syncing files between local and other devices/services such as Pinata. Yes: store your files at your browser and share'em/access in any other place. * [wq](https://github.com/Floflis/wq) [WIP] Use jq or mlq to write, in one line * [untitled](https://github.com/Floflis/untitled) [WIP] untitled knows how to name the files; the only work your program have is to pass "save" to the untitled lib * [foldmerger](https://github.com/Floflis/foldmerger) [WIP] Merge two "different" git repos into one! * [noah](https://github.com/Floflis/noah) * [rpm-install](https://github.com/Floflis/rpm-install) * [bash-performance](https://github.com/Floflis/bash-performance) * [fullname](https://github.com/Floflis/fullname) [WIP] Get user's full name * [unistore](https://github.com/Floflis/unistore) * [SRC At ETH💎💌] [mlq](https://github.com/Floflis/mlq) jq, but HTML instead of JSON 🧚 * [logout](https://github.com/Floflis/logout) [WIP] According to itsfoss: "there is no logout command in Ubuntu or any Linux distribution"; but now there are 🧚 * [SRC At ETH💎💌] [ethgas](https://github.com/Floflis/ethgas) Displays information about Ethereum's gas prices with programmatic-use support * [SRC At ETH💎💌] [online](https://github.com/Floflis/online) Utility to check if online or offline. Install and just type `online` in the Witchcraft/Terminal; can be used programmatically * [shit](https://github.com/Floflis/shit) Like a classical `curl URL | sh`, but safer and faster. * [alertz](https://github.com/Floflis/alertz) Add JsonFeed files and receive notifications on new content. * [dedup](https://github.com/Floflis/dedup) * [wjet](https://github.com/Floflis/wjet) [WIP] ipget, but faster 🚀 - Download files from IPFS like if you were using wget; but safer (and now faster!) * [Mouse-Course](https://github.com/Floflis/Mouse-Course) Learn how to use your mouse, the most important tool you have to use your computer! * [NFT Generator](https://github.com/Floflis/nft-generator) * [Schoolbag](https://github.com/Floflis/Schoolbag) The app for office's/school's smart tables. * [Notestick](https://github.com/Floflis/Notestick) Experiment of a sticky notes app made with Construct 2. * [Feedback](https://github.com/Floflis/Feedback) Send a feedback from Floflis * [davidCamera](https://github.com/Floflis/davidCamera) Just another camera app, I guess 😜 * [ColorPicker](https://github.com/Floflis/ColorPicker) Pick a color from a screen, apply it to another screen/e-ink surface * [TouchPass](https://github.com/Floflis/TouchPass) NFC password manager * [nftbg](https://github.com/Floflis/nftbg) * [icons](https://github.com/Floflis/icons) * [nu-post-install](https://github.com/Floflis/nu-post-install) * [Eleganse-Floflis](https://github.com/Floflis/Eleganse-Floflis) * [guppy](https://github.com/Floflis/guppy) Leverage neofetch with neofetch-themes ##### <img width="16px" src="https://avatars.githubusercontent.com/u/38830931?s=200&v=4"/> [Plasmmer](https://github.com/Plasmmer) Decentralized, open-source software/hardware manufacturer based on a DAO and Ethereum's tokenized economy (includes NFTs). * <img width="16px" src="https://github.com/Plasmmer/Web3Updater/raw/main/logotype.svg"/> [Web3Updater](https://github.com/Plasmmer/Web3Updater) The web 3.0 (that came from Ethereum, IPFS and TheGraph) is replacing the web 2.0, and Web3Updater will put it also on OS/app updates! As Web3Updater can be used in any product to manage updates (such as Electron apps), it also uses itself to update itself (meta-language). * [SRC At ETH💎💌] <img width="16px" src="https://github.com/Plasmmer/HTTB/raw/main/logo.png"/> [HTTB](https://github.com/Plasmmer/HTTB) The HTTP server purely written in Bash! "HTTB" stands for Hyper Text Transfer Bash. Imagine nginx, but written in shell. * [SharedBytes](https://github.com/Plasmmer/SharedBytes) Common Bytes Specification, for data deduplication * [Framlr](https://github.com/Plasmmer/Framlr) Do you want frameless windows on your Electron app? There's a framework even for that! No need to rebuild the wheel for every Electron app you develop. Framlr is a window frame boilerplate to be used on Electron apps with frameless windows. * [Omni-Packager](https://github.com/Plasmmer/Omni-Packager) Leverage Floflis Packager but not limited to it * [Scripting-Knowledge](https://github.com/Plasmmer/Scripting-Knowledge) Knowledge base for awesome tricks for Bash and other scripting languages * [SRC At ETH💎💌] [Future1984](https://github.com/Plasmmer/Future1984) The intersection between past and future in PCs. Imagine owning the cutting-edge of technology with a Mac in 1984? You can revive these times with the cutting-edge again: black-white e-ink, RISC-V and Rust. * [Undefined] [Car](https://github.com/Plasmmer/Car) * [Shared-Design](https://github.com/Plasmmer/Shared-Design) Shared design principles that inherits from Material Design, Human Design and Fluent Design. * [Plugz](https://github.com/Plasmmer/Plugz) Building/compiling, now like a cake recipe 🍰 Make simpler software using independent dependencies. Get build recipes from JSON files, parse source-code and binary links from both centralized and decentralized sources, do different builds to different targets. * [SRC At ETH💎💌] [SharedChain](https://github.com/Plasmmer/SharedChain) NFT was stored at an nowadays Imageshack and it got offline? Its centralized URL will have an IPFS match! This is one of a lot of examples of how SharedChain can be used. * [Download.json](https://github.com/Plasmmer/Download.json) File that defines which file should/not be downloaded according to conditions. * [musiclr-core](https://github.com/Plasmmer/musiclr-core) ##### <img width="16px" src="https://avatars.githubusercontent.com/u/17116432?s=200&v=4"/> [Plasmmer Developers](https://github.com/PlasmmerDev) * [universal-abi](https://github.com/PlasmmerDev/universal-abi) Generic ABI that can be used for any smart-contract (Ethereum, Polygon, etc; EVM) of any ERC. * [EveryoneCan](https://github.com/PlasmmerDev/EveryoneCan) An humanitary initiative. Games and apps are only for "programmers"? 🤔 Its a wrong (and anti-democratic) myth that "only specific people can develop"; the truth is that everyone can make games and apps; visually and intuitively (through event-sheets) without knowing text programming! Even your grandma and children. * [PEHTML](https://github.com/PlasmmerDev/PEHTML) Brand new experimental & modern tags to facilitate, simplify, complement and speed up the Web. * [Quantum-Markup-Language](https://github.com/PlasmmerDev/Quantum-Markup-Language) Smaller and faster than JSON and HTML. QML is based on Emmet as HTML is based on XML; with improvements such as support to datasets. * [DML](https://github.com/PlasmmerDev/DML) ##### <img width="16px" src="https://avatars.githubusercontent.com/u/88293257?s=200&v=4"/> [FrameworkJS](https://github.com/FrameworkJavascript) The framework for the Web 3.0. Smart & adaptive: just like an octopus. Web, Electron, KaiOS, Cordova or even Firefox OS? Checked. * [Framework.js](https://github.com/FrameworkJavascript/Framework.js) The Framework that the Web 3.0 deserves * [FrameworkBlogger](https://github.com/FrameworkJavascript/FrameworkBlogger) Yes: FrameworkJS for Blogger (blogspot.com), too! * [FMWK-reddit](https://github.com/FrameworkJavascript/FMWK-reddit) Yes: FrameworkJS for (sub)Reddit(s), too! * [Web3Framework](https://github.com/FrameworkJavascript/Web3Framework) Connect your Ethereum wallet and see its ETH balances. FrameworkJS Web3 template using Web3Modal. * [ConstructFramework](https://github.com/FrameworkJavascript/ConstructFramework) Easily make apps using... ...Construct 2 game engine ##### <img width="16px" src="https://avatars.githubusercontent.com/u/44840459?s=200&v=4"/> [Eventlr](https://github.com/EventlrEngine) * [Eventlr](https://github.com/EventlrEngine/Eventlr) Programming made easy from kids to your grandma. Eventlr is the app to create apps, with ridiculously-easy visual event sheets with conditions/actions. ##### <img width="16px" src="https://avatars.githubusercontent.com/u/94411988?s=200&v=4"/> [Firedoge/Web3 HQ](https://github.com/Web3HQ) * [poodle](https://github.com/Web3HQ/poodle) Simple search engine for IPFS/.eth sites, using Lunr2 * [SRC At ETH💎💌] [firedoge](https://github.com/Web3HQ/firedoge) The browser the Web 3.0 asked for. ##### <img width="16px" src="https://avatars.githubusercontent.com/u/50565258?s=200&v=4"/> [HTML5Apps Platform](https://github.com/html5appsplatform) * [HTML5Apps-Platform](https://github.com/html5appsplatform/HTML5Apps-Platform) Run HTML5 apps in reduced size as native apps synced in any of your devices. ##### <img width="16px" src="https://avatars.githubusercontent.com/u/89318607?s=200&v=4"/> [Floflis Screens](https://github.com/FloflisScreens) Firefox OS -> KaiOS -> Project Pris/GerdaOS -> Floflis Screens (hybrid of feature and touch phones). * [davidLauncher](https://github.com/FloflisScreens/davidLauncher) Hybrid launcher that adapts itself to KaiOS/Firefox OS. Show the adaptive power of Framework.js, which also follows the file deduplication philosophy of FilePeace ##### <img width="16px" src="https://avatars.githubusercontent.com/u/26726098?s=200&v=4"/> [USV Format](https://github.com/usvformat) * [USV-Format](https://github.com/usvformat/USV-Format) Format created to support the videos of future. ##### <img width="16px" src="https://avatars.githubusercontent.com/u/38340120?s=200&v=4"/> [Orgut/Peeper](https://github.com/PeeperSocial) * [Offline-Peeper-poster](https://github.com/PeeperSocial/Offline-Peeper-poster) No Internet connection? Draft posts for Peeper! ##### <img width="16px" src="https://avatars.githubusercontent.com/u/38709808?s=200&v=4"/> [Communicator](https://github.com/CommunicatorMessenger) [Outdated description - updates coming] Decentralized, lovely and funny messenger in Ethereum blockchain. * [Chatip](https://github.com/CommunicatorMessenger/Chatip) Embed version of Communicator, for you put in your site/blog. ##### <img width="16px" src="https://avatars.githubusercontent.com/u/44071742?s=200&v=4"/> [NeTVision](https://github.com/NetVisionOfficial) * [YouTube-Calculator](https://github.com/NetVisionOfficial/YouTube-Calculator) Calc how many views you will have per video, and your AdSense revenue per video and per month * [Video-Script-Maker](https://github.com/NetVisionOfficial/Video-Script-Maker) Write the script for your talks/acts in a video, then easily read while filming (slide with a simple mouse or remotecontrol button press) ##### <img width="16px" src="https://avatars.githubusercontent.com/u/58575200?s=200&v=4"/> [01 VCS](https://github.com/01VCS) * [01](https://github.com/01VCS/01) Git, on steroids. Layer2 for git, ready for the Web 3.0 * [git-meta](https://github.com/01VCS/git-meta) Wanna git preserve your file dates? git-meta stores all files' metadata into .gitmeta! ##### <img width="16px" src="https://avatars.githubusercontent.com/u/102428033?s=200&v=4"/> [FilePeace](https://github.com/FilePeace) Floflis' project to sync, preserve the history and backup/protect your files. * [folderstamp](https://github.com/FilePeace/folderstamp) Preserve/snapshot the current state of a folder, with its file list and timestamps * [Mediantic](https://github.com/FilePeace/Mediantic) The new web is semantic. And media have to be semantic, too. * [rc-hashing](https://github.com/FilePeace/rc-hashing) Safely move recordings (and other files) by hashing using IPFS' CID v1 * [rc-sh-tst](https://github.com/FilePeace/rc-sh-tst) Get the timestamp of a recording's moment, cut audio in a specific moment and other tools ##### <img width="16px" src="https://avatars.githubusercontent.com/u/80379307?s=200&v=4"/> [Gamlr](https://github.com/Gamlr) Game producer in form of a guild/DAO. Our games don't require programming knowledge (using visual event-sheets) so anyone can contribute and earn GAME tokens. * [AirConsole-Magicwand](https://github.com/Gamlr/AirConsole-Magicwand) Prepares and joints your game's controller and screen <details> <summary>[Spoiler] Should tech Humans be limited to tech? Click here not to expand a text, but your mind.</summary> --- Anyone who see my apps/scripts/games/designs/projects/etc can't imagine my sensual side. <img width="300px" src="https://ipfs.io/ipfs/QmT6sGJs4ohBo33AJYdTwbcPnCxeFbXGyDGRkYDwQm7Niz/nft.jpg"> <img width="300px" src="https://ipfs.io/ipfs/QmWjvVZjNRsEJq12HAKksZcB9sFNFoPdQLZZN7Qta8QgHr/nft.jpg"> <img width="300px" src="https://ipfs.io/ipfs/QmVhj6Qiej32n7eWgViGEGYPQDA5VdwMbGpzfRKpoBJvEt/nft.jpg"> Anyone who see my sensual side cannot imagine my intelectual side. At me you can see yourself, so get inspired and go on! Let's democratize techdev, demistify how people see (and sadly demonizes) the witches and how the image of a woman is obligued to follow a binary between sex/sensuality/servant or intelectually/productively relevant while not permitted to be both sexy and intelectual. If we stand agains't the misogyny, we're all witches and that is a good thing! A Tiktok twerker may be building something + meaningful than they would. I can't forget when a programmer at Twitter (yes, like those who laugh thinking our Bash scripts are inferior to their C reworks regular Humans can't read/contribute to anymore) at 2020 and at the same month of the BLM manifestations, posted two images: one of black women twerking and other of white astronauts 🤢 I want to prove the world guys like him are wrong Daniella Mesquita at [a Foundation NFT](https://foundation.app/@daniella/danime/4). --- </details> ---- https://foundation.app/@daniella/danime/1 https://ipfs.io/ipfs/QmQRJ3UnUV5U4Xscr7bN38a4MDApHt44nv7XWfKYvzKHjL/metadata.json https://ipfs.io/ipfs/QmT6sGJs4ohBo33AJYdTwbcPnCxeFbXGyDGRkYDwQm7Niz/nft.jpg PostNausea Created by @daniella Collection Daniella Mesquita's Personal photos Description Original caption: ""Bom dia" (acordei com náusea e agr me recuperando do q pus pra fora)" Originally posted by Daniella Mesquita 09 September 2022 here: https://www.instagram.com/p/CiTWmiUuZWz/ Minted by @daniella Dec 5, 2022 at 3:22am (tx: 0x280376dcd4775bbb9ced42ed3a04db3824c3be69e611fb84748ff07f51c97224) ---- https://foundation.app/@daniella/danime/2 https://ipfs.io/ipfs/QmNfrgPEwjM2bDX2DC6T3mwsFoTkDU1Z56ubZsF3wBBaJv/metadata.json https://ipfs.io/ipfs/QmWjvVZjNRsEJq12HAKksZcB9sFNFoPdQLZZN7Qta8QgHr/nft.jpg Love your body, love yourself 💞 Created by @daniella Collection Daniella Mesquita's Personal photos Description Original caption: "Aprendendo a amar meu corpo e ver, agr entendo pq o primo da minha crisu no colégio falou (debochando, mas hj seria um elogio) que eu tenho uma cintura feminina 💝💌 Deus pôs uma mulher em um corpo de homem, mas abençoou por não sser mt masculino e sei que é de seus propósitos sobre minha história pra contar, de eu passar por todos os passos pra poder adequar meu corpo a minha alma meu espírito (me castigar me odiar, se Jesus tem coisas realmente importantes pra se preocupar, por exemplo "Cristãos" cheios de ódio adorando o anti-cristo brasileiro?) Obg a todas as pessoas até hj q me entenderam (foram bem mais do q as q foram contra, mas foi um privilégio meu pq a maioria das pessoas trans não tem a mesma sorte😥)" Originally posted by Daniella Mesquita in 17 October 2022 at Instagram here: https://www.instagram.com/p/CjzOppYuWit/ Minted by @daniella Dec 5, 2022 at 3:26am (tx: https://etherscan.io/tx/0xc9ab2b1f2f39da278519ed350899ea29fb1ca27428542bddad908e8912e2e822) ---- https://foundation.app/@daniella/danime/4 https://ipfs.io/ipfs/QmcKesiv5DVaTZYwsHBaM5EjrvSgDStRxvxC1ZUn4smYru/metadata.json https://ipfs.io/ipfs/QmVhj6Qiej32n7eWgViGEGYPQDA5VdwMbGpzfRKpoBJvEt/nft.jpg Bootech 🍑👩‍🚀 Created by @daniella Collection Daniella Mesquita's Personal photos Description Anyone who see my apps/scripts/games/designs/projects/etc can't imagine my sensual side. Anyone who see my sensual side cannot imagine my intelectual side. At me you can see yourself, so get inspired and go on! Let's democratize techdev, demistify how people see (and sadly demonizes) the witches and how the image of a woman is obligued to follow a binary between sex/sensuality/servant or intelectually/productively relevant while not permitted to be both sexy and intelectual. If we stand agains't the misogyny, we're all witches and that is a good thing! A Tiktok twerker may be building something + meaningful than they would. I can't forget when a programmer at Twitter (yes, like those who laugh thinking our Bash scripts are inferior to their C reworks regular Humans can't read/contribute to anymore) at 2020 and at the same month of the BLM manifestations, posted two images: one of black women twerking and other of white astronauts 🤢 I want to prove the world guys like him are wrong Minted by @daniella Dec 5, 2022 at 4:05am (tx: 0xd3b1b5fe8da083471c9ebe56389d89f3d396748977e65290ee38164ac33d2a3d)
I was going to resume my work at AddressTower by starting a new task: integrating the ".js.org" into it, turning their centralized registry into a distributed (still centralized until an agreement for forming a DAO) sharedchain/sharedpoint. The .js.org philosophy perfectly fits that of AddressTower: permanent not-for-profit domains for the benefit of the humankind avoiding domain squatting (there's also a precedent, where a rich user who could afford to buy "framework" usernames at NPM and Github tried to scoop my framework.js.org URL but his intentions failed. So, AddressTower would download the .git repo of .js.org and friends linked through IPFS IDs at Floflis' Feofle (shortcut People app at desktop) would validate/compare the sharedchain (former commonchain) and if latest block is okay, the Firedoge browser with pre-shipped settings+addon should resolve ipfs://framework.js or example https://usv.js urls (without the .org!) Here's an example of dns.json from back 2019: { "swap": { "ipfs": { "1": "QmQWSU6KbMmwbTHy9Ff7LnJkBvo8UGyzq1fH1rXP46knuf" }, "dat": { "1": "2b78cfdb34d9fcaced2aa8f2b4403366f7d4e63b3530d1362f3e8959dacfb2fb", "2": "swap.hashbase.io" }, "www": { "1": "ipfs.io/ipfs/QmQWSU6KbMmwbTHy9Ff7LnJkBvo8UGyzq1fH1rXP46knuf", "2": "gateway.pinata.cloud/QmQWSU6KbMmwbTHy9Ff7LnJkBvo8UGyzq1fH1rXP46knuf", "3": "swap.hashbase.io", "4": "ipfswap.com" } } } This refers to a hypothetical swap.uuu domain. But while hyperfocusing on my new ideas, I left a lot of emails unreplied including those from Public Institutions. Some minutes ago, the same neighbor (longly bearded and yesterday wearing a Brazil's CBF shirt - and full of slangs and f-words - so there's the neighbors can't not fear and join him) who attacked my mom yesterday and called her "vaca do cacete" ("dick's cow)", was laughing today despite the imobiliaria's chairwoman (re)positioning this time against his attacks. Witn these pending emails to reply, new pending manifestations with important proofs to present to the MPSP and the confidence this neighbor is demoing, I can't hyperfocus anymore on altruism but pragmatism; I can't hyperfocus anymore in projects but to go to a lower level and fight (not with the sword but the word). Email I got early today (before the bozominion neighbor began laughing) ---- NOTÍCIA DE FATO Nº 38.0547.0002752/2022-3 12:55 PM Promotoria de Justiça Criminal do Tatuape <pjdotatuape@mpsp.mp.br> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style> </head> <body dir="ltr"> <div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof"> <span class="x_elementToProof" style="font-size:12pt;font-family:Calibri, Arial, Helvetica, sans-serif, serif, EmojiFont;margin:0px;background-color:rgb(255, 255, 255)"><span style="margin:0px;background-color:white"><span style="margin:0px;background-color:white"><span style="margin:0px;background-color:white"><span style="margin:0px"><span style="font-size:14pt;margin:0px"><b><u class="x_ContentPasted0 ContentPasted0">PROMOTORIA DE JUSTIÇA CRIMINAL DO TATUAPÉ</u></b></span></span></span><span style="font-size:15px;margin:0px;color:rgb(36, 36, 36);background-color:white"></span><span style="font-size:15px;margin:0px;color:rgb(36, 36, 36);background-color:white"></span><span style="font-size:15px;margin:0px;color:rgb(36, 36, 36);background-color:white"></span></span></span><span style="margin:0px;background-color:white"></span><span style="margin:0px;background-color:white"></span><span style="margin:0px;background-color:rgb(255, 255, 255);display:inline !important"></span></span> <div class="x_elementToProof" style="font-size:12pt;font-family:Calibri, Arial, Helvetica, sans-serif, serif, EmojiFont;margin:0px;background-color:rgb(255, 255, 255)"> <div style="margin:0px;background-color:white"> <div style="margin:0px;background-color:white"> <div style="margin:0px;background-color:white"> <div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="font-size:14pt;margin:0px">Rua Santa Maria 257 - 1º andar - sala 117</span></div> <div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="font-size:14pt;margin:0px">Telefone: (11) 2294-9400</span></div> </div> <div style="margin:0px;background-color:white"><span style="margin:0px;background-color:white"><span style="font-size:14pt;margin:0px"><br class="x_ContentPasted0 ContentPasted0"> </span></span></div> <div style="margin:0px;background-color:white"><span style="margin:0px;background-color:white"><span class="x_ContentPasted0 ContentPasted0" style="font-size:14pt;margin:0px">Boa tarde.</span></span></div> <div style="margin:0px;background-color:white"> <div style="margin:0px;background-color:white"><br class="x_ContentPasted0 ContentPasted0"> </div> <div style="margin:0px;background-color:white"><span class="x_ContentPasted0 ContentPasted0" style="font-size:14pt;margin:0px">Venho através do presente informar que em relação à notícia de fato supra foi requisitada a instauração de inquérito policial junto à 5ª Delegacia Seccional da Capital nesta data.</span></div> <div style="margin:0px;background-color:white"><br class="x_ContentPasted0 ContentPasted0"> </div> <span style="margin:0px;background-color:white"><span class="x_ContentPasted0 ContentPasted0" style="font-size:14pt;margin:0px">Atenciosamente.</span></span></div> </div> </div> <br class="ContentPasted0"> </div> <div class="x_elementToProof" style="margin:0px"><span style="font-size:12pt;font-family:Calibri, Arial, Helvetica, sans-serif, serif, EmojiFont;margin:0px"></span></div> <br> </div> <div class="elementToProof"> <div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"> <br> </div> <div id="Signature"> <div> <div></div> <div></div> <div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif"> <div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif"> <div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif"> <div style="margin-top:0px; margin-bottom:0px; margin-top:0; margin-bottom:0"><img class="EmojiInsert" style="max-width:100%" data-outlook-trace="F:1|T:1" src="cid:0aa3b5fd-d60d-4c3a-bede-72e63a657960"><br> </div> <div style="margin-top:0px; margin-bottom:0px; margin-top:0; margin-bottom:0"><br> </div> </div> </div> </div> </div> </div> </div> </body> </html>
### Hi there 👋🥰 [![🌳Linktree](https://img.shields.io/badge/🌳Linktree-4285F4?logo=google-chrome&style=for-the-badge&logoColor=fff)](https://linktr.ee/idaniella) [![🐦Twitter](https://img.shields.io/badge/Twitter-1DA1F2?logo=twitter&style=for-the-badge&logoColor=fff)](https://twitter.com/DaniMesqEN) [![📷Instagram](https://img.shields.io/badge/instagram-idanimesq-informational?style=flat&logo=instagram&logoColor=white&color=E4405F)](https://instagram.com/idanimesq) <center><img width="500px" src="https://ipfs.io/ipfs/QmbDivVxfP1pJfJTojvuyCtuYqqBcFRBE46BToLqsSxCv3/nft.png"/> <img width="300px" src="https://ipfs.io/ipfs/QmUEn9sGy2DTmaV8azoQQsBdgffriAjsakYcqfMrjQN5sU/nft.jpg"/></center> #### 📈 GitHub Statistics <p align="center" style="witdh:100%"> <img src="https://github-profile-trophy.vercel.app/?username=danimesq&theme=dracula&no-frame=false&no-bg=false&margin-w=4&row=1" /> </p> <!-- ETHEREUM - captioning: --> <!-- [1 normal "S" trophy] Multilanguage - Rainbow Lang User - 19pt --> <!-- [1 normal "S" trophy] Organizations - Jack of all Trades - 28pt --> <!-- [3 "S" gold trophies] Issues - God Issuer - 3.5kpt --> <!-- [1 gold "S" trophy] Commits - Super Committer - 1.9pt --> <!-- [1 gold "S" trophy] PullRequest - Super Puller - 221pt --> <!-- [3 blue "A" trophies] Repositories - Ultra Repo Creator - 73pt --> <p align="center" style="witdh:100%"> <img src="https://github-readme-stats.vercel.app/api?username=danimesq&show_icons=true&count_private=true&hide_title=true&theme=dracula" /> </p> <!-- ETHEREUM - captioning: --> <!-- Total Stars Earned: 5 --> <!-- Total Commits (2022): 1.9k --> <!-- Total PRs: 221 --> <!-- Total Issues: 3.5k --> <!-- Contributed to (last year): 180 --> <!-- A++ --> <p align="center" style="witdh:100%"> <img src="https://github-readme-stats.vercel.app/api/top-langs/?username=danimesq&langs_count=6&layout=compact&theme=dracula" /> </p> <!-- ETHEREUM - captioning: --> <!-- Most Used Languages --> <!-- 74.54% JavaScript --> <!-- 17.44% HTML --> <!-- 6.23% CSS --> <!-- 1.79% Shell --> Statistics thanks to inspiration from [@federicoiosue](https://github.com/federicoiosue) <a href="https://github.com/harish-sethuraman/readme-components"> <img src="https://readme-components.vercel.app/api?component=stackoverflow&stackoverflowid=5623661&textfill=black&fill=linear-gradient%2862deg%2C%20%238EC5FC%200%25%2C%20%23E0C3FC%20100%25%29%3B%0A"> </a> <!-- ETHEREUM - captioning: --> <!-- dani 'SO learn value newbies' --> <!-- Brasil --> <!-- Reputation: 123 --> <!-- Answers: 8 --> <!-- Questions: 23 --> <!-- Profile views: 68 --> <!-- Badges: 0 gold, 0 silver, 14 bronze --> - 🤗 Pronouns: she/her | Woman 🏳️‍⚧️ | Lesbian 🏳️‍🌈 - 💬 Ask me about democratization of tools and inclusiveness in the tech space ❣ - 🔭 I’m currently working on Bash, Javascript at [Floflis](https://github.com/Floflis/) (but the focus is Rust) - 🌱 I’m currently learning Python, Solidity (in my opinion EVM should accept languages like Bash and Python not limited to Solidity; that's why I support [Cartesi](https://cartesi.io/)) - 📫 How to reach me: [mesquitadaniella@proton.me](mailto:mesquitadaniella@proton.me) ---- 1. I give new life to old, once abandoned software/tools; 2. I give birth to brand new, unthought software/tools that gives new life. ---- ### Table of Contents - [Languages](#languages) - [Back-end development](#back-end-development) - [App development](#app-development) - [Interested in](#interested-in) - [Currently learning](#currently-learning) - [🏢 other Organizations](#-other-organizations) - [My personal repos](#my-personal-repos) - [Personal: Gaming/Metaverse](#personal-gamingmetaverse) - [My thoughtful questions](#my-thoughtful-questions) - [My thoughtful questions about the status of programming and computing in general](#about-the-status-of-programming-and-computing-in-general) - [My thoughtful questions about the status of tech](#about-the-status-of-tech) - [My experiments](my-experiments) - [💎🌱 Featured organizations & their projects](#-featured-organizations--their-projects) - <img width="16px" src="https://avatars.githubusercontent.com/u/18749146?s=200&v=4"/> [Floflis](#-floflis) - <img width="16px" src="https://avatars.githubusercontent.com/u/38830931?s=200&v=4"/> [Plasmmer](#-plasmmer) - <img width="16px" src="https://avatars.githubusercontent.com/u/17116432?s=200&v=4"/> [Plasmmer Developers](#-plasmmer-developers) - <img width="16px" src="https://avatars.githubusercontent.com/u/88293257?s=200&v=4"/> [FrameworkJS](#-frameworkjs) - <img width="16px" src="https://avatars.githubusercontent.com/u/44840459?s=200&v=4"/> [Eventlr](#-eventlr) - <img width="16px" src="https://avatars.githubusercontent.com/u/94411988?s=200&v=4"/> [Firedoge/Web3 HQ](#-firedogeweb3-hq) - <img width="16px" src="https://avatars.githubusercontent.com/u/50565258?s=200&v=4"/> [HTML5Apps Platform](#-html5apps-platform) - <img width="16px" src="https://avatars.githubusercontent.com/u/89318607?s=200&v=4"/> [Floflis Screens](#-floflis-screens) - <img width="16px" src="https://avatars.githubusercontent.com/u/26726098?s=200&v=4"/> [USV Format](#-usv-format) - <img width="16px" src="https://avatars.githubusercontent.com/u/38340120?s=200&v=4"/> [Orgut/Peeper](#-orgutpeeper) - <img width="16px" src="https://avatars.githubusercontent.com/u/38709808?s=200&v=4"/> [Communicator](#-communicator) - <img width="16px" src="https://avatars.githubusercontent.com/u/44071742?s=200&v=4"/> [NeTVision](#-netvision) - <img width="16px" src="https://avatars.githubusercontent.com/u/58575200?s=200&v=4"/> [01 VCS](#-01-vcs) - <img width="16px" src="https://avatars.githubusercontent.com/u/102428033?s=200&v=4"/> [FilePeace](#-filepeace) - <img width="16px" src="https://avatars.githubusercontent.com/u/80379307?s=200&v=4"/> [Gamlr](#-gamlr) These are some of my projects that I turned into organizations. Yes, there are no people on these organizations other than me myself, unfortunately (people don't join and avoid even their selves nowadays). TDAH have its dangers and struggles but also have its good side, which give me a huge amount of creativity and brand new projects every year (downside: not finishing a 4-day-long project and already jumping into a brand new idea that popped out) ---- #### Languages ![Bash](https://img.shields.io/badge/-Bash-1f425f?style=for-the-badge&logo=image%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE3MDg2QTAyQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE3MDg2QTAzQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTcwODZBMDBBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTcwODZBMDFBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciLz4gPC9yZGY6RGVzY3JpcHRpb24%2BIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2BIDw%2FeHBhY2tldCBlbmQ9InIiPz6lm45hAAADkklEQVR42qyVa0yTVxzGn7d9Wy03MS2ii8s%2BeokYNQSVhCzOjXZOFNF4jx%2BMRmPUMEUEqVG36jo2thizLSQSMd4N8ZoQ8RKjJtooaCpK6ZoCtRXKpRempbTv5ey83bhkAUphz8fznvP8znn%2B%2F3NeEEJgNBoRRSmz0ub%2FfuxEacBg%2FDmYtiCjgo5NG2mBXq%2BH5I1ogMRk9Zbd%2BQU2e1ML6VPLOyf5tvBQ8yT1lG10imxsABm7SLs898GTpyYynEzP60hO3trHDKvMigUwdeaceacqzp7nOI4n0SSIIjl36ao4Z356OV07fSQAk6xJ3XGg%2BLCr1d1OYlVHp4eUHPnerU79ZA%2F1kuv1JQMAg%2BE4O2P23EumF3VkvHprsZKMzKwbRUXFEyTvSIEmTVbrysp%2BWr8wfQHGK6WChVa3bKUmdWou%2BjpArdGkzZ41c1zG%2Fu5uGH4swzd561F%2BuhIT4%2BLnSuPsv9%2BJKIpjNr9dXYOyk7%2FBZrcjIT4eCnoKgedJP4BEqhG77E3NKP31FO7cfQA5K0dSYuLgz2TwCWJSOBzG6crzKK%2BohNfni%2Bx6OMUMMNe%2Fgf7ocbw0v0acKg6J8Ql0q%2BT%2FAXR5PNi5dz9c71upuQqCKFAD%2BYhrZLEAmpodaHO3Qy6TI3NhBpbrshGtOWKOSMYwYGQM8nJzoFJNxP2HjyIQho4PewK6hBktoDcUwtIln4PjOWzflQ%2Be5yl0yCCYgYikTclGlxadio%2BBQCSiW1UXoVGrKYwH4RgMrjU1HAB4vR6LzWYfFUCKxfS8Ftk5qxHoCUQAUkRJaSEokkV6Y%2F%2BJUOC4hn6A39NVXVBYeNP8piH6HeA4fPbpdBQV5KOx0QaL1YppX3Jgk0TwH2Vg6S3u%2BdB91%2B%2FpuNYPYFl5uP5V7ZqvsrX7jxqMXR6ff3gCQSTzFI0a1TX3wIs8ul%2Bq4HuWAAiM39vhOuR1O1fQ2gT%2F26Z8Z5vrl2OHi9OXZn995nLV9aFfS6UC9JeJPfuK0NBohWpCHMSAAsFe74WWP%2BvT25wtP9Bpob6uGqqyDnOtaeumjRu%2ByFu36VntK%2FPA5umTJeUtPWZSU9BCgud661odVp3DZtkc7AnYR33RRC708PrVi1larW7XwZIjLnd7R6SgSqWSNjU1B3F72pz5TZbXmX5vV81Yb7Lg7XT%2FUXriu8XLVqw6c6XqWnBKiiYU%2BMt3wWF7u7i91XlSEITwSAZ%2FCzAAHsJVbwXYFFEAAAAASUVORK5CYII%3D&logoColor=fff) ![JavaScript](https://img.shields.io/badge/-Javascript-c2ad07?style=for-the-badge&logo=javascript&logoColor=fff) ![HTML5](https://img.shields.io/badge/-HTML5-E34F26?style=flat-square&logo=html5&logoColor=white) ![CSS3](https://img.shields.io/badge/-CSS3-1572B6?style=flat-square&logo=css3) ![Json](https://img.shields.io/badge/-JSON-838383?style=flat-square&logo=json) - ![XML](https://img.shields.io/badge/-XML-black?style=flat-square) ![Emmet](https://img.shields.io/badge/-Emmet-black?style=flat-square) ##### Back-end development ![Node.js](https://img.shields.io/badge/-node.js-339933?style=for-the-badge&logo=node.js&logoColor=fff) ? (Hey, I'm still learning NodeJS 🤭) ##### App development ![Electron](https://img.shields.io/badge/-Electron-47848F?style=for-the-badge&logo=electron&logoColor=fff) ##### Interested in: ![PHP](https://img.shields.io/badge/-PHP-1a165f?style=flat-square&logo=php) ![MySQL](https://img.shields.io/badge/-MySQL-5299cc?style=flat-square&logo=mysql) ![SQLite](https://img.shields.io/badge/-SQLite-383838?style=flat-square&logo=sqlite) ![Solidity](https://img.shields.io/badge/-Solidity-383838?style=flat-square&logo=solidity) ![ERC20](https://img.shields.io/badge/-Ethereum%20ERC20-383838?style=flat-square&logo=ethereum) ![ReactNative](https://img.shields.io/badge/-React/React%20Native-575d91?style=flat-square&logo=react) ![Firebase](https://img.shields.io/badge/-Firebase-b36800?style=flat-square&logo=firebase) ![Rust](https://img.shields.io/badge/-Rust-f46623?style=flat-square&logo=rust) - ![Canvas](https://img.shields.io/badge/-Canvas-black?style=flat-square) ![WebSocket](https://img.shields.io/badge/-WebSocket-black?style=flat-square) ![Batch](https://img.shields.io/badge/-Batch/MsDos-black?style=flat-square) ![Regedit](https://img.shields.io/badge/-Regedit-black?style=flat-square) ##### Currently learning ![Python](https://img.shields.io/badge/-Python-0c0c0c?style=flat-square&logo=python) ![Nodejs](https://img.shields.io/badge/-Nodejs-031c03?style=flat-square&logo=Node.js) ---- #### 🏢 other Organizations: - <img width="16px" src="https://avatars.githubusercontent.com/u/89318607?s=200&v=4"/> [Floflis Screens](https://github.com/FloflisScreens) - <img width="16px" src="https://avatars.githubusercontent.com/u/77433541?s=200&v=4"/> [UniOS](https://github.com/UniOSeth) - <img width="16px" src="https://avatars.githubusercontent.com/u/38340090?s=200&v=4"/> [Floflis Pull](https://github.com/FloflisPull) - <img width="16px" src="https://avatars.githubusercontent.com/u/27725719?s=200&v=4"/> [DCRS](https://github.com/DCRS) - <img width="16px" src="https://avatars.githubusercontent.com/u/20750023?s=200&v=4"/> [Universav](https://github.com/Universav) - <img width="16px" src="https://avatars.githubusercontent.com/u/21290074?s=200&v=4"/> [AddressTower](https://github.com/AddressTower) - <img width="16px" src="https://avatars.githubusercontent.com/u/33704763?s=200&v=4"/> [UltraCreator](https://github.com/UltraCreator) - <img width="16px" src="https://avatars.githubusercontent.com/u/80379087?s=200&v=4"/> [Tamigucho](https://github.com/Tamigucho) - <img width="16px" src="https://avatars.githubusercontent.com/u/80556987?s=200&v=4"/> [XPoke](https://github.com/XPokeProject) #### My personal repos * [PRIVATE] 💉 [Vaccines](https://github.com/danimesq/Personal-Vaccines) * [PRIVATE] 🏦 [OpenBanking](https://github.com/danimesq/Personal-OpenBanking) * [PRIVATE] 📔 [QuickEdit phone notes](https://github.com/danimesq/quickedit) * [PRIVATE] 🖥 [my Desktop files](https://github.com/danimesq/DesktopFiles) * [PRIVATE] 🖥🪟 [my Windows Desktop files](https://github.com/danimesq/DesktopFilesWindows) * [PRIVATE] [dossier1](https://github.com/danimesq/dossier1) * [PRIVATE] [DossierTicketsTransfers](https://github.com/danimesq/DossierTicketsTransfers) * [PRIVATE] [DossierTicketsInternacoes](https://github.com/danimesq/DossierTicketsInternacoes) * [PRIVATE] 📒 [DossierLog](https://github.com/danimesq/DossierLog) * 🐠 [aquarium-site](https://github.com/danimesq/aquarium-site) * [PRIVATE] 🎵 [HinosFav](https://github.com/danimesq/HinosFav) ##### Personal: Gaming/Metaverse * <img width="16px" src="https://cdn.icon-icons.com/icons2/851/PNG/512/poke_trainer_three_star_icon-icons.com_67512.png"/> [My PokeJourney tasks/guides](https://github.com/danimesq/PokeJourneyTasks) * <img width="16px" src="https://upload.wikimedia.org/wikipedia/commons/b/bf/Gameboy_green_icon.svg"/> [My PokeJourneys GB](https://github.com/danimesq/journeys-gb) * <img width="16px" src="https://www.kindpng.com/picc/m/33-332756_gameboy-icons-game-boy-advance-icon-png-transparent.png"/> [My PokeJourneys GBA](https://github.com/danimesq/journeys-gba) * <img width="16px" src="https://upload.wikimedia.org/wikipedia/commons/5/55/Black_Nintendo_DS_icon.png"/> [My PokeJourneys DS](https://github.com/danimesq/journeys-ds) * <img width="16px" src="https://www.kindpng.com/picc/m/24-248262_letter-x-logo-pokemon-x-logo-hd-png.png"/> [My PokeJourneys Pokemon X](https://github.com/danimesq/journeys-x) * My PokeJourneys Pokemon AquaSapphire * My PokeJourneys Pokemon Let's Go Eevee * [PRIVATE] [My PokeJourneys old emulated Pokemon Sword](https://github.com/danimesq/journeys-sword-old) * <img width="16px" src="https://seeklogo.com/images/P/pokemon-sword-logo-F867D564B7-seeklogo.com.png"/> [My PokeJourneys Pokemon Sword](https://github.com/danimesq/journeys-sword) * My PokeJourneys Pokemon Shining Pearl * My PokeJourneys Pokemon Legends: Arceus * <img width="16px" src="https://assets-prd.ignimgs.com/2022/08/03/pokemon-scarlet-1659542292648.jpg?width=300&crop=1%3A1%2Csmart"/> [My PokeJourneys Pokemon Scarlet](https://github.com/danimesq/journeys-scarlet) * <img width="16px" src="https://user-images.githubusercontent.com/38465129/72480309-0dede180-37c5-11ea-9138-793b79713232.png"/> [My Minecraft world of 2017](https://github.com/danimesq/MinecraftWorld) * [My new Minecraft world of 2021](https://github.com/danimesq/MinecraftWorld2) ---- #### My thoughtful questions... ##### ...about the status of programming and computing in general: * Why don't we get inspired by git and (urgently, gently) de-duplicate the Web? In 100 years, we'll have more bits than atoms on Earth * Why having to copy and paste your bio between sites (and leaving leftovers in sites you don't remember often) just to update a number for your birthday age, when they could be centered in a single place where other sites gets the plain text from? * Ethereum came to question Bitcoin's limitations. But, currently, there are no layer1 projects LEGITIMATELY questioning Ethereum other than BrightID's IDChain. Cardano? Solana? All other "ethereum-killer"s? They are to Ethereum just what BitcoinCash/Litecoin are to Bitcoin. * The line between a programmer and a "scripter" should be blurred, merged. More than that, I believe Bash/Shell/visual-event-sheet "scripters" (programmers) are way more glorious due to their frugal style/abilities (this "their" is "our" because I'm part of them, us; but for the sake of my mind wellbeing I want not to forget being humble). * Programming should be known for the visual event-sheets, not bytes/hex/{}/();/notepad brainf&%c * Linux distros should be developed not with a eyeglass, an idea to fix other distros, coffee and some abilities; they should be developed with love. That's why they should be built 100% in Bash/Shell+JS/HTML/CSS (lets democratize visual event-sheets) and that's why "The year of the Linux in Desktop" did never came. * Why aren't our screenshot files split in parts, containing HTML/CSS/SVG replacing lots of pixels? This could be also merged/intersected with my idea of file de-duplication. * Why having a whole new separated video coded to react/duet/reply to another video, when videos could simply be containers building on the top of other? You could deduplicate (and save) a lot of (mega)bytes by just linking a video on the video that wants to insert it. Also, mentioning the previous item: why lots of pixels to have texts/figures on your videos when they could simply be in HTML/CSS/SVG (even the transitions, in CSS)? * Git does deduplicate texty files such as HTML/CSV/XML/etc. Shouldn't it also deduplicate the audio's wave forms, images and the same as video frames+audio? Git was primarily made for developers (which mostly uses texty files, obviously), but what about LFS and the app/game's assets? Also, git have the potential for uses beyond the dev space. These advanced deduplicing capabilities shouldn't necessarily be added to git, but to a layer2 for it (or in competitors such as Pijul or a layer2 for both git and/or these competitors/alternatives) * Shouldn't Linux support various types of symlinks or even someone make a filesystem heavily based on deduplication? For example, a single symlink merging bytes from more than one file. * If you delete a file, rename its containing folder and from the recycle bin you restore it: how will your filesystem/explorer app handle this? ##### ...about the status of tech: * Emojis represents the humanity's expressions; so why the curation of brand new emojis aren't widely open (through a DAO for example)? ---- #### My experiments * davidApps: small HTML5 apps implementing features the "native" apps don't (remember how Plasmmer's [Future1984](https://github.com/Plasmmer/Future1984) PC should start before becoming a standard) These apps: [davidLauncher](https://github.com/FloflisScreens/davidLauncher) (hybrid launcher for KaiOS, Android and Firefox OS), [davidWriter](https://github.com/Floflis/davidWriter) (introduce live git snapshot inside any texty file!), [davidExplorer](https://github.com/Floflis/davidExplorer) (hybrid file explorer for Desktop/Mobile), [davidCamera](https://github.com/Floflis/davidCamera) (use software for videos with the same quality of photos!) #### 💎🌱 Featured organizations & their projects ##### <img width="16px" src="https://avatars.githubusercontent.com/u/18749146?s=200&v=4"/> [Floflis](https://github.com/Floflis) Beyond the Web3, Floflis is leading operating systems at what an modern OS should look like. You can contribute with visual event-sheets and Bash. * [Personal-Issues](https://github.com/Floflis/Personal-Issues) [WIP] Manage personal issues & development as if your life were a git project * [Adventus](https://github.com/Floflis/Adventus) A window manager written in Javascript, HTML5 and CSS3. This fork, Adventus, implements GTK-compatible CSS classes to window elements, and other improvements such as compatibility with Framlr for Electron. If its the desire of the original author, this fork can cease by being merged upstream. * [AppPlayer-Electron](https://github.com/Floflis/AppPlayer-Electron) Preview Construct 2 apps/games in a Electron prebuilt exe - as if Electron were a normal browser! * [floapps](https://github.com/Floflis/floapps) Have AppImage? Now are you missing support for .apps, .game and .html5 files? * [batsh-shell](https://github.com/Floflis/batsh-shell) [WIP] Experimental shell written in shell (metalanguage) to parse the batsh language * [SRC At ETH💎💌] [Floflis-Central](https://github.com/Floflis/Floflis-Central) [WIP] More than a settings aggregator; its a dashboard for your web3 profile. * [rmv](https://github.com/Floflis/rmv) Like the "rm" command, but safer * [linux-icon-builder](https://github.com/Floflis/linux-icon-builder) Enter an source image (min. 512x512) and get it resized into different sizes and added into a folder you can patch as icon theme on Linux. * [Floflis-Packager](https://github.com/Floflis/Floflis-Packager) [WIP] Make a working and lightweight Electron app for Floflis. * [WFS](https://github.com/Floflis/WFS) [WIP] Web File System - a working file system for web OSes, using IPFS for syncing files between local and other devices/services such as Pinata. Yes: store your files at your browser and share'em/access in any other place. * [wq](https://github.com/Floflis/wq) [WIP] Use jq or mlq to write, in one line * [untitled](https://github.com/Floflis/untitled) [WIP] untitled knows how to name the files; the only work your program have is to pass "save" to the untitled lib * [foldmerger](https://github.com/Floflis/foldmerger) [WIP] Merge two "different" git repos into one! * [noah](https://github.com/Floflis/noah) * [rpm-install](https://github.com/Floflis/rpm-install) * [bash-performance](https://github.com/Floflis/bash-performance) * [fullname](https://github.com/Floflis/fullname) [WIP] Get user's full name * [unistore](https://github.com/Floflis/unistore) * [SRC At ETH💎💌] [mlq](https://github.com/Floflis/mlq) jq, but HTML instead of JSON 🧚 * [logout](https://github.com/Floflis/logout) [WIP] According to itsfoss: "there is no logout command in Ubuntu or any Linux distribution"; but now there are 🧚 * [SRC At ETH💎💌] [ethgas](https://github.com/Floflis/ethgas) Displays information about Ethereum's gas prices with programmatic-use support * [SRC At ETH💎💌] [online](https://github.com/Floflis/online) Utility to check if online or offline. Install and just type `online` in the Witchcraft/Terminal; can be used programmatically * [shit](https://github.com/Floflis/shit) Like a classical `curl URL | sh`, but safer and faster. * [alertz](https://github.com/Floflis/alertz) Add JsonFeed files and receive notifications on new content. * [dedup](https://github.com/Floflis/dedup) * [wjet](https://github.com/Floflis/wjet) [WIP] ipget, but faster 🚀 - Download files from IPFS like if you were using wget; but safer (and now faster!) * [Mouse-Course](https://github.com/Floflis/Mouse-Course) Learn how to use your mouse, the most important tool you have to use your computer! * [NFT Generator](https://github.com/Floflis/nft-generator) * [Schoolbag](https://github.com/Floflis/Schoolbag) The app for office's/school's smart tables. * [Notestick](https://github.com/Floflis/Notestick) Experiment of a sticky notes app made with Construct 2. * [Feedback](https://github.com/Floflis/Feedback) Send a feedback from Floflis * [davidCamera](https://github.com/Floflis/davidCamera) Just another camera app, I guess 😜 * [ColorPicker](https://github.com/Floflis/ColorPicker) Pick a color from a screen, apply it to another screen/e-ink surface * [TouchPass](https://github.com/Floflis/TouchPass) * [nftbg](https://github.com/Floflis/nftbg) ##### <img width="16px" src="https://avatars.githubusercontent.com/u/38830931?s=200&v=4"/> [Plasmmer](https://github.com/Plasmmer) Decentralized, open-source software/hardware manufacturer based on a DAO and Ethereum's tokenized economy (includes NFTs). * <img width="16px" src="https://github.com/Plasmmer/Web3Updater/raw/main/logotype.svg"/> [Web3Updater](https://github.com/Plasmmer/Web3Updater) The web 3.0 (that came from Ethereum, IPFS and TheGraph) is replacing the web 2.0, and Web3Updater will put it also on OS/app updates! As Web3Updater can be used in any product to manage updates (such as Electron apps), it also uses itself to update itself (meta-language). * [SRC At ETH💎💌] <img width="16px" src="https://github.com/Plasmmer/HTTB/raw/main/logo.png"/> [HTTB](https://github.com/Plasmmer/HTTB) The HTTP server purely written in Bash! "HTTB" stands for Hyper Text Transfer Bash. Imagine nginx, but written in shell. * [SharedBytes](https://github.com/Plasmmer/SharedBytes) Common Bytes Specification, for data deduplication * [Framlr](https://github.com/Plasmmer/Framlr) Do you want frameless windows on your Electron app? There's a framework even for that! No need to rebuild the wheel for every Electron app you develop. Framlr is a window frame boilerplate to be used on Electron apps with frameless windows. * [Omni-Packager](https://github.com/Plasmmer/Omni-Packager) Leverage Floflis Packager but not limited to it * [Scripting-Knowledge](https://github.com/Plasmmer/Scripting-Knowledge) Knowledge base for awesome tricks for Bash and other scripting languages * [SRC At ETH💎💌] [Future1984](https://github.com/Plasmmer/Future1984) The intersection between past and future in PCs. Imagine owning the cutting-edge of technology with a Mac in 1984? You can revive these times with the cutting-edge again: black-white e-ink, RISC-V and Rust. * [Undefined] [Car](https://github.com/Plasmmer/Car) * [Shared-Design](https://github.com/Plasmmer/Shared-Design) Shared design principles that inherits from Material Design, Human Design and Fluent Design. * [Plugz](https://github.com/Plasmmer/Plugz) Building/compiling, now like a cake recipe 🍰 Make simpler software using independent dependencies. Get build recipes from JSON files, parse source-code and binary links from both centralized and decentralized sources, do different builds to different targets. * [SRC At ETH💎💌] [SharedChain](https://github.com/Plasmmer/SharedChain) NFT was stored at an nowadays Imageshack and it got offline? Its centralized URL will have an IPFS match! This is one of a lot of examples of how SharedChain can be used. * [Download.json](https://github.com/Plasmmer/Download.json) File that defines which file should/not be downloaded according to conditions. * [musiclr-core](https://github.com/Plasmmer/musiclr-core) ##### <img width="16px" src="https://avatars.githubusercontent.com/u/17116432?s=200&v=4"/> [Plasmmer Developers](https://github.com/PlasmmerDev) * [universal-abi](https://github.com/PlasmmerDev/universal-abi) Generic ABI that can be used for any smart-contract (Ethereum, Polygon, etc; EVM) of any ERC. * [EveryoneCan](https://github.com/PlasmmerDev/EveryoneCan) An humanitary initiative. Games and apps are only for "programmers"? 🤔 Its a wrong (and anti-democratic) myth that "only specific people can develop"; the truth is that everyone can make games and apps; visually and intuitively (through event-sheets) without knowing text programming! Even your grandma and children. * [PEHTML](https://github.com/PlasmmerDev/PEHTML) Brand new experimental & modern tags to facilitate, simplify, complement and speed up the Web. * [Quantum-Markup-Language](https://github.com/PlasmmerDev/Quantum-Markup-Language) Smaller and faster than JSON and HTML. QML is based on Emmet as HTML is based on XML; with improvements such as support to datasets. * [DML](https://github.com/PlasmmerDev/DML) ##### <img width="16px" src="https://avatars.githubusercontent.com/u/88293257?s=200&v=4"/> [FrameworkJS](https://github.com/FrameworkJavascript) The framework for the Web 3.0. Smart & adaptive: just like an octopus. Web, Electron, KaiOS, Cordova or even Firefox OS? Checked. * [Framework.js](https://github.com/FrameworkJavascript/Framework.js) The Framework that the Web 3.0 deserves * [FrameworkBlogger](https://github.com/FrameworkJavascript/FrameworkBlogger) Yes: FrameworkJS for Blogger (blogspot.com), too! * [FMWK-reddit](https://github.com/FrameworkJavascript/FMWK-reddit) Yes: FrameworkJS for (sub)Reddit(s), too! * [Web3Framework](https://github.com/FrameworkJavascript/Web3Framework) Connect your Ethereum wallet and see its ETH balances. FrameworkJS Web3 template using Web3Modal. * [ConstructFramework](https://github.com/FrameworkJavascript/ConstructFramework) Easily make apps using... ...Construct 2 game engine ##### <img width="16px" src="https://avatars.githubusercontent.com/u/44840459?s=200&v=4"/> [Eventlr](https://github.com/EventlrEngine) * [Eventlr](https://github.com/EventlrEngine/Eventlr) Programming made easy from kids to your grandma. Eventlr is the app to create apps, with ridiculously-easy visual event sheets with conditions/actions. ##### <img width="16px" src="https://avatars.githubusercontent.com/u/94411988?s=200&v=4"/> [Firedoge/Web3 HQ](https://github.com/Web3HQ) * [poodle](https://github.com/Web3HQ/poodle) Simple search engine for IPFS/.eth sites, using Lunr2 * [SRC At ETH💎💌] [firedoge](https://github.com/Web3HQ/firedoge) The browser the Web 3.0 asked for. ##### <img width="16px" src="https://avatars.githubusercontent.com/u/50565258?s=200&v=4"/> [HTML5Apps Platform](https://github.com/html5appsplatform) * [HTML5Apps-Platform](https://github.com/html5appsplatform/HTML5Apps-Platform) Run HTML5 apps in reduced size as native apps synced in any of your devices. ##### <img width="16px" src="https://avatars.githubusercontent.com/u/89318607?s=200&v=4"/> [Floflis Screens](https://github.com/FloflisScreens) Firefox OS -> KaiOS -> Project Pris/GerdaOS -> Floflis Screens (hybrid of feature and touch phones). * [davidLauncher](https://github.com/FloflisScreens/davidLauncher) Hybrid launcher that adapts itself to KaiOS/Firefox OS. Show the adaptive power of Framework.js, which also follows the file deduplication philosophy of FilePeace ##### <img width="16px" src="https://avatars.githubusercontent.com/u/26726098?s=200&v=4"/> [USV Format](https://github.com/usvformat) * [USV-Format](https://github.com/usvformat/USV-Format) Format created to support the videos of future. ##### <img width="16px" src="https://avatars.githubusercontent.com/u/38340120?s=200&v=4"/> [Orgut/Peeper](https://github.com/PeeperSocial) * [Offline-Peeper-poster](https://github.com/PeeperSocial/Offline-Peeper-poster) No Internet connection? Draft posts for Peeper! ##### <img width="16px" src="https://avatars.githubusercontent.com/u/38709808?s=200&v=4"/> [Communicator](https://github.com/CommunicatorMessenger) [Outdated description - updates coming] Decentralized, lovely and funny messenger in Ethereum blockchain. * [Chatip](https://github.com/CommunicatorMessenger/Chatip) Embed version of Communicator, for you put in your site/blog. ##### <img width="16px" src="https://avatars.githubusercontent.com/u/44071742?s=200&v=4"/> [NeTVision](https://github.com/NetVisionOfficial) * [YouTube-Calculator](https://github.com/NetVisionOfficial/YouTube-Calculator) Calc how many views you will have per video, and your AdSense revenue per video and per month * [Video-Script-Maker](https://github.com/NetVisionOfficial/Video-Script-Maker) Write the script for your talks/acts in a video, then easily read while filming (slide with a simple mouse or remotecontrol button press) ##### <img width="16px" src="https://avatars.githubusercontent.com/u/58575200?s=200&v=4"/> [01 VCS](https://github.com/01VCS) * [01](https://github.com/01VCS/01) Git, on steroids. Layer2 for git, ready for the Web 3.0 * [git-meta](https://github.com/01VCS/git-meta) Wanna git preserve your file dates? git-meta stores all files' metadata into .gitmeta! ##### <img width="16px" src="https://avatars.githubusercontent.com/u/102428033?s=200&v=4"/> [FilePeace](https://github.com/FilePeace) Floflis' project to sync, preserve the history and backup/protect your files. * [folderstamp](https://github.com/FilePeace/folderstamp) Preserve/snapshot the current state of a folder, with its file list and timestamps * [Mediantic](https://github.com/FilePeace/Mediantic) The new web is semantic. And media have to be semantic, too. * [rc-hashing](https://github.com/FilePeace/rc-hashing) Safely move recordings (and other files) by hashing using IPFS' CID v1 * [rc-sh-tst](https://github.com/FilePeace/rc-sh-tst) Get the timestamp of a recording's moment, cut audio in a specific moment and other tools ##### <img width="16px" src="https://avatars.githubusercontent.com/u/80379307?s=200&v=4"/> [Gamlr](https://github.com/Gamlr) Game producer in form of a guild/DAO. Our games don't require programming knowledge (using visual event-sheets) so anyone can contribute and earn GAME tokens. * [AirConsole-Magicwand](https://github.com/Gamlr/AirConsole-Magicwand) Prepares and joints your game's controller and screen <details> <summary>[Spoiler] Test?</summary> --- Spoiler --- </details>
Greetings from The Mountain View Academy NFT Club! We are a non-profit club promoting NFT & Blockchain at the Mountain View Academy in California. Saddened to see Ukrainian students displaced and discontinued studies due to war, and in the hope of supporting those in need by utilizing our knowledge of Web3 and Blockchain technology, we launched the “Aid For Students In Ukraine” fundraising event in honor of our school’s 100th anniversary dedicated to providing financial relief to Ukrainian students. The fundraising was completed and has raised 1.9305 ETH in total. We sincerely hope peace and joy will come soon for Ukraine and look forward to building together in Blockchain! Best Wishes MVA NFT Club Team
https://github.com/PlasmmerDev/Framework.js.git /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app img/ symlink "node_modules"/ -> /1/Floflis/libs/node_modules symlink "notes"/ -> ../notes Test of FrameworkJS' very first omni/hybrid app which works at KaiOS, Cordova, Firefox OS, Electron, Web, etc 🦎ᘛ⁐̤ᕐᐷ🐙 https://emojicombos.com/chameleon --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/fileprotocol.js ----> --------------------------------------------------------------------------------------------------------------------------- if("file:" !== document.location.protocol) { document.querySelector("#fileprotocol").innerHTML = ``; } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/fileprotocol.js --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/framlr.css ----> --------------------------------------------------------------------------------------------------------------------------- body{margin:inherit;background:transparent} .wm-window{height:calc(100% - 2px)!important} #wm-content{overflow:auto;/* height:calc(100% - 34px)!important */height: calc(100% - 36px)!important} #wm-content object{width:100%;height:100%} .wm-window-title { user-select: none; -webkit-app-region: drag; cursor: default; height: 34px; /* background: #00A2E8; border-bottom: 1px solid #0094D2; */ background: #00a2e8; border-bottom: 1px solid #0094d2 } #window_title { font-size: 16px; line-height: 32px; position: relative; left: 5px; color: #fff; font-family: Calibri,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-weight: bold } #window_icon { -webkit-app-region: no-drag; position: relative; left: 4px; top: -1px } .wm-button-group { -webkit-app-region: no-drag; float: right; margin-top: 3px; margin-right: 3px } .wm-button { height: 23px!important; padding: 0px!important; /* border: 1px solid #0094d2!important; */ border: none!important; border-radius: 0px!important } /* .wm-button:hover{border:1px solid #082510!important} */ .wm-button:active { filter: none!important; /* border: 1px solid #095533!important */ } .wm-button:focus{outline:none!important} .wm-button.wm-minimize{width:33px!important} .wm-button.wm-maximize{width:33px!important} .wm-button.wm-close{width:34px!important} .wm-minimize{background:url(img/minimize.png)!important} .wm-minimize:hover{background-position-x:-33px!important} .wm-minimize:active{background-position-x:-66px!important} .wm-maximize{background:url(img/maximize.png)!important} .wm-maximize:hover{background-position-x:-33px!important} .wm-maximize:active{background-position-x:-66px!important} .wm-maximize.restore{background-position-y:-23px!important} .wm-close{background:url(img/close.png)!important} .wm-close:hover{background-position-x:-34px!important} .wm-close:active{background-position-x:-68px!important} .wm-window.framed{/*border-radius:10px;*//*border:1px solid #0094D2;*/border:1px solid #0094d2} .wm-window-title.framed{/*border-top-left-radius:10px;border-top-right-radius:10px*/} --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/framlr.css --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/framlr.html ----> --------------------------------------------------------------------------------------------------------------------------- <script type="text/javascript" src="framlr.js"></script> <link rel="stylesheet" type="text/css" href="framlr.css"> <div class="wm-window" id="wm-window"> <div class="wm-window-title" id="wm-window-title"> <img id="window_icon" width="16px" height="16px" src="icon.png"> <span id="window_title">Untitled project 1</span> <div class="wm-button-group"> <button id="minimize" class="wm-button wm-minimize"></button><button id="maximize" class="wm-button wm-maximize"></button><button id="close" class="wm-button wm-close"></button> </div> </div> <section id="wm-content"><object data="index.html"></object></section> </div> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/framlr.html --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/framlr.js ----> --------------------------------------------------------------------------------------------------------------------------- (function () { // Retrieve remote BrowserWindow const {BrowserWindow} = require('electron').remote function init() { var window = BrowserWindow.getFocusedWindow(); if(window.isMaximized()){ document.getElementById("wm-window").classList.remove("framed"); document.getElementById("wm-window-title").classList.remove("framed"); }else{ document.getElementById("wm-window").classList.add("framed"); document.getElementById("wm-window-title").classList.add("framed"); //var element = document.getElementById('wm-window'); //element.classList.add('framed'); } // Minimize task document.getElementById("minimize").addEventListener("click", (e) => { var window = BrowserWindow.getFocusedWindow(); window.minimize(); }); // Maximize window document.getElementById("maximize").addEventListener("click", (e) => { var window = BrowserWindow.getFocusedWindow(); if(window.isMaximized()){ window.unmaximize(); document.getElementById("maximize").classList.remove("restore"); document.getElementById("wm-window").classList.add("framed"); document.getElementById("wm-window-title").classList.add("framed"); }else{ window.maximize(); document.getElementById("maximize").classList.add("restore"); document.getElementById("wm-window").classList.remove("framed"); document.getElementById("wm-window-title").classList.remove("framed"); } }); // Close app document.getElementById("close").addEventListener("click", (e) => { var window = BrowserWindow.getFocusedWindow(); window.close(); }); }; document.onreadystatechange = () => { if (document.readyState == "complete") { init(); } }; })(); --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/framlr.js --------------------------------------------------------------------------------------------------------------------------- icon.png --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/index.html ----> --------------------------------------------------------------------------------------------------------------------------- <!DOCTYPE html> <html lang="en-us"> <head id="head"> <meta name="theme-color" content="#00A185" /> <title color="#fff">Framework.js</title> <meta charset="utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta content="width=device-width,initial-scale=1,minimal-ui,shrink-to-fit=no" name="viewport"> <link rel="icon" href="notes/logo.png" /> <link rel="logo" href="logo.svg" border="true" /> <script type="text/javascript" src="index.js"></script> <meta name="pehtml" content="true"> <meta name="directory" content="css, js, img, snd"> <meta name="description" content="Its a modern and responsive framework/template/theme thinked for apps and sites of the future. A unique framework with the same code, both for apps and sites."> <meta name="keywords" content="HTML5 Framework, Web Framework, Web UI Framework, Site Framework, App Framework"> <script data-main="index.js" src="require.js"></script> </head> <body id="body"> <div id="placefirst"></div> <div id="splashloader"><div style="background: #044b3b;position: absolute;width: 100%;height: 100%;top: 0;left: 0;user-select: none;-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none;z-index:6000"><center><img src="logo.svg" style="user-drag: none;-webkit-user-drag: none;" draggable="false" width="30%"><h1 style="color: #fff;">Loading...</h1></center></div></div> <style> mark{background:#FFFFBA} header{background-color:#00A185!important} </style> <center> <div id="landinglogo"><img width="100px" src="logo.svg"/></div> <div id="landingtitle"><h1>Welcome to <b>FrameworkJS</b> r3!</h1></div> <span>The framework for the Web 3.0. Smart & adaptive: just like an octopus.</span> <h2>💡 We've detected our environment: <mark><span id="environment"></span></mark> 🐙</h2> <hr/> <br/><copyright><center><span><small>(c) 2014-2022 FrameworkJS by <a href="https://developers.plasmmer.eth.link/" target="blank">Plasmmer Developers</a>. Credits to our inspiration for the octopus icon: <a href="http://icons8.com/license/" target="_blank">icons8</a>.</small></span></center></copyright> <br/><a href="https://frameworkjavascript.github.io/Framework.js" target="_blank"><img width="135px" src="notes/seal-light-bg.png"/></a> </center> </body> </html> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/index.html --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/index.js ----> --------------------------------------------------------------------------------------------------------------------------- var OSName="Unknown OS"; if (navigator.userAgent.indexOf("Mozilla/5.0 (Mobile; rv")!=-1) OSName="Firefox OS"; if (navigator.userAgent.indexOf("Mozilla/5.0 (Mobile; rv:48.0")!=-1) OSName="KaiOS"; if (navigator.userAgent.indexOf("KAIOS")!=-1) OSName="KaiOS"; // start of "window.onload" window.onload = function(){ document.querySelector("#splashloader").innerHTML = ``; var envlogtxt = "Environment detected: " if(OSName == 'Firefox OS'){ console.log(envlogtxt +OSName +"🦊"); var element = document.getElementById('environment'); if (typeof(element) != 'undefined' && element != null){ var environmenttext = document.getElementById('environment'); var text = document.createTextNode(OSName); environmenttext.appendChild(text); var element = document.getElementById('elementId'); } } if(OSName == 'KaiOS'){ console.log(envlogtxt +OSName +"🈺"); var element = document.getElementById('environment'); if (typeof(element) != 'undefined' && element != null){ var environmenttext = document.getElementById('environment'); var text = document.createTextNode(OSName); environmenttext.appendChild(text); } requirejs(["platform-kaios.js"],function(util){}); requirejs(["platform-kaios-custom.js"],function(util){}); } if (OSName !== 'KaiOS'){ requirejs(["platform-not-kaios.js"],function(util){}); requirejs(["platform-not-kaios-custom.js"],function(util){}); if (OSName !== 'Firefox OS'){ document.querySelector("#splashloader").innerHTML = ``; console.log(envlogtxt +"Not Firefox OS and not KaiOS."); var element = document.getElementById('environment'); if (typeof(element) != 'undefined' && element != null){ var environmenttext = document.getElementById('environment'); var text = document.createTextNode("Not Firefox OS and not KaiOS."); environmenttext.appendChild(text); } requirejs(["platform-not-kaios-not-firefox.js"],function(util){}); } } } // end of "window.onload" --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/index.js --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/logo.svg ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="742pt" height="743pt" viewBox="0 0 742 743" version="1.1" xmlns="http://www.w3.org/2000/svg"> <g id="#019b7fff"> <path fill="#019b7f" opacity="1.00" d=" M 331.97 2.44 C 335.38 2.75 338.51 0.86 341.92 0.98 C 361.30 1.02 380.68 1.00 400.06 0.99 C 401.47 1.00 402.86 1.30 404.23 1.63 C 408.32 2.80 412.69 1.81 416.76 3.14 C 423.15 5.26 430.06 4.31 436.49 6.31 C 440.99 7.69 445.77 7.92 450.21 9.54 C 454.94 11.35 460.18 11.04 464.85 13.06 C 469.68 15.09 474.73 16.47 479.67 18.20 C 488.30 22.25 497.46 25.25 505.52 30.46 C 512.60 33.72 518.94 38.28 525.39 42.62 C 536.87 50.98 547.99 60.13 556.69 71.45 C 559.88 74.97 563.05 78.55 565.38 82.72 C 567.68 86.94 571.77 89.88 573.71 94.32 C 576.10 99.28 577.95 104.49 580.66 109.30 C 584.15 115.29 585.38 122.22 588.56 128.35 C 591.45 137.50 593.89 146.82 595.93 156.20 C 596.72 164.46 598.19 172.69 597.99 181.02 C 597.68 185.82 600.39 190.24 599.93 195.05 C 599.64 201.68 599.64 208.33 599.93 214.96 C 600.36 220.15 597.59 224.92 597.85 230.12 C 598.14 238.67 594.98 246.73 593.86 255.11 C 592.26 264.69 588.27 273.66 586.13 283.11 C 584.38 288.18 581.22 292.65 579.65 297.81 C 578.25 302.46 575.72 306.64 574.14 311.22 C 571.97 318.43 566.66 324.16 564.38 331.35 C 563.13 335.65 561.10 339.66 558.79 343.48 C 555.40 348.86 554.26 355.30 551.04 360.78 C 549.49 363.43 548.50 366.36 547.42 369.23 C 545.52 374.44 542.15 379.01 540.71 384.40 C 539.77 388.05 538.71 391.67 537.36 395.20 C 535.38 400.25 535.67 405.81 534.04 410.95 C 531.58 419.05 531.73 427.62 531.86 436.00 C 531.54 444.99 532.03 454.25 535.45 462.68 C 538.05 468.72 540.22 475.24 544.98 480.01 C 548.99 483.99 553.00 487.98 556.97 492.02 C 564.05 497.88 572.97 500.74 581.70 503.19 C 587.56 505.39 593.86 505.50 600.00 506.21 C 605.71 506.86 611.38 505.48 617.07 505.16 C 628.28 503.77 638.61 498.96 649.11 495.10 C 656.34 492.11 662.47 487.15 668.92 482.83 C 676.77 476.36 683.44 468.50 688.84 459.89 C 694.44 449.12 698.54 437.24 698.50 424.98 C 698.41 418.67 698.78 412.34 698.23 406.05 C 697.75 400.50 695.09 395.44 691.85 391.03 C 688.64 386.72 683.52 384.62 679.00 382.06 C 670.28 377.22 659.26 378.08 650.66 382.72 C 646.76 384.73 644.19 389.15 639.50 389.50 C 633.67 390.89 629.18 385.09 628.30 379.94 C 630.63 374.39 633.29 368.92 636.78 364.00 C 643.46 354.63 654.19 349.07 665.12 346.26 C 675.41 344.36 686.48 344.21 696.14 348.74 C 703.71 351.18 709.85 356.35 716.43 360.59 C 718.89 362.45 720.20 365.37 722.35 367.55 C 728.11 373.61 731.96 381.18 735.05 388.88 C 738.49 395.99 739.99 403.81 742.00 411.40 L 742.00 455.33 C 740.01 461.73 738.62 468.28 737.87 474.93 C 735.63 483.11 733.15 491.24 730.41 499.27 C 727.37 506.92 722.60 513.75 719.68 521.45 C 718.46 524.71 715.74 527.02 713.94 529.93 C 712.15 532.75 710.55 535.77 707.97 537.97 C 703.41 541.81 701.50 548.00 696.35 551.26 C 691.69 554.22 687.72 558.05 683.98 562.06 C 689.09 562.34 694.21 562.14 699.33 562.37 C 693.92 563.24 688.45 562.38 683.02 562.71 C 679.78 564.31 677.27 567.05 674.16 568.88 C 669.68 570.99 665.91 574.31 661.38 576.31 C 657.51 578.06 654.13 580.75 650.12 582.19 C 643.08 584.77 636.36 588.29 629.01 589.93 C 623.09 591.33 616.98 590.97 610.96 591.00 C 554.32 591.00 497.69 591.00 441.05 591.00 C 430.88 590.89 420.69 591.31 410.53 590.61 C 410.30 590.35 409.82 589.83 409.59 589.57 C 407.81 587.27 405.86 585.13 403.83 583.07 C 402.62 583.05 401.41 583.04 400.21 583.04 C 398.40 586.53 395.32 589.70 395.58 593.91 C 395.58 597.90 394.83 602.32 397.20 605.84 C 401.40 613.27 409.06 617.69 416.45 621.41 C 425.22 625.74 434.48 629.05 442.99 633.91 C 446.41 635.92 450.39 636.87 453.55 639.35 C 458.84 643.39 464.34 647.38 468.34 652.79 C 469.92 655.18 470.97 657.89 472.69 660.20 C 475.10 663.70 475.89 667.95 477.32 671.88 C 477.83 680.29 477.72 688.76 477.22 697.17 C 476.06 700.07 475.03 703.02 474.29 706.08 C 472.93 709.63 471.20 712.99 469.00 716.10 C 466.50 721.01 462.41 724.73 458.45 728.45 C 455.28 731.07 451.50 732.81 448.31 735.40 C 447.70 735.49 446.48 735.67 445.88 735.76 C 445.88 738.24 442.97 737.19 441.48 737.80 C 439.11 739.89 435.76 739.80 433.10 741.36 C 427.99 742.19 422.85 742.98 417.65 743.00 L 398.41 743.00 C 392.21 742.75 385.96 742.73 379.89 741.29 C 378.04 739.82 375.68 739.60 373.43 739.31 C 372.12 737.85 370.25 737.47 368.39 737.32 C 367.76 736.75 367.14 736.20 366.53 735.65 C 365.95 735.54 364.81 735.32 364.23 735.21 C 360.76 732.86 356.91 730.89 354.51 727.30 C 353.23 718.45 352.73 709.34 354.33 700.50 C 355.43 699.52 356.48 698.47 357.76 697.72 C 361.05 697.19 363.35 699.95 366.32 700.72 C 366.69 701.12 367.44 701.90 367.81 702.29 C 368.34 702.42 369.38 702.68 369.91 702.81 C 370.86 704.18 372.39 704.62 373.96 704.89 C 374.29 705.23 374.93 705.90 375.25 706.24 C 378.98 707.04 382.15 709.46 386.03 709.79 C 389.14 712.41 393.78 710.59 396.96 713.27 C 402.92 713.33 408.89 713.59 414.85 713.21 C 417.90 711.31 421.71 711.62 424.78 709.77 C 429.19 707.82 432.28 704.01 435.35 700.46 C 435.42 699.80 435.57 698.48 435.64 697.83 C 436.24 696.99 436.85 696.17 437.46 695.35 C 437.64 691.30 437.76 687.22 437.30 683.18 C 435.30 681.16 435.01 678.06 432.88 676.12 C 425.68 668.34 415.68 663.80 405.91 660.24 C 405.53 659.82 404.76 658.97 404.37 658.55 C 403.69 658.52 402.33 658.47 401.65 658.45 C 400.93 657.81 400.21 657.18 399.50 656.55 C 398.87 656.48 397.61 656.33 396.98 656.26 C 396.60 655.87 395.85 655.10 395.47 654.71 C 386.13 650.34 376.88 645.16 369.71 637.60 C 368.37 633.50 364.73 630.77 363.03 626.86 C 361.02 622.41 358.46 617.96 358.40 612.94 C 358.04 607.59 355.96 602.20 357.37 596.84 C 358.21 593.96 358.41 590.97 358.61 588.01 C 359.62 581.90 362.98 576.58 365.47 571.02 C 360.77 571.59 355.85 572.21 351.79 574.83 C 348.10 577.07 344.39 579.33 341.18 582.24 C 337.92 585.05 334.87 588.33 330.82 590.01 C 327.20 591.32 323.26 590.96 319.49 591.07 C 319.26 595.90 319.39 600.74 319.53 605.58 C 319.23 627.38 319.48 649.20 319.40 671.01 C 319.67 678.85 318.48 686.62 318.44 694.46 C 315.96 697.07 316.66 700.72 316.09 703.95 C 313.37 713.04 309.90 722.27 303.01 729.07 C 298.71 733.79 293.06 737.00 287.24 739.44 C 282.90 741.35 278.13 741.69 273.61 743.00 L 247.63 743.00 C 243.02 741.94 238.29 741.36 233.93 739.43 C 229.12 738.28 224.72 734.27 224.57 729.11 C 224.18 720.73 224.32 712.33 224.57 703.95 C 224.43 701.73 225.50 699.52 227.38 698.34 C 230.26 697.72 233.19 698.59 235.67 700.06 C 239.76 702.44 244.44 703.45 249.01 704.45 C 253.46 705.34 257.87 703.86 262.07 702.58 C 264.78 701.79 266.56 699.38 268.23 697.26 C 270.60 694.29 270.74 690.37 271.79 686.87 C 272.45 684.63 272.77 682.30 272.72 679.98 C 272.64 670.66 272.90 661.34 272.34 652.03 C 272.37 631.81 272.26 611.59 272.40 591.37 C 268.63 590.96 264.84 590.92 261.06 590.99 C 215.36 591.02 169.67 590.98 123.98 591.01 C 117.95 591.07 111.89 590.12 106.27 587.88 C 94.12 582.93 82.24 577.27 70.74 570.98 C 69.58 570.57 68.51 570.00 68.10 568.77 C 65.13 568.26 63.75 565.25 61.22 563.94 C 56.01 561.30 53.10 555.89 48.07 553.02 C 44.30 550.83 41.35 547.52 39.08 543.83 C 36.54 539.85 32.56 537.04 30.08 533.01 C 26.75 527.60 22.73 522.57 20.28 516.65 C 17.83 510.68 13.56 505.62 11.62 499.43 C 8.92 491.28 6.23 483.10 4.19 474.76 C 3.22 468.29 2.07 461.84 0.00 455.62 L 0.00 410.66 C 1.81 404.78 3.05 398.73 5.09 392.91 C 6.22 389.60 8.11 386.62 9.33 383.35 C 11.68 376.96 15.68 371.29 20.52 366.54 C 22.67 363.02 25.52 360.05 29.27 358.24 C 36.36 352.71 44.53 348.60 53.20 346.19 C 60.66 344.21 68.49 345.07 76.03 346.10 C 87.92 348.84 99.64 355.14 106.39 365.63 C 109.43 370.27 112.34 375.43 112.51 381.11 C 112.61 385.44 108.95 389.00 104.88 389.74 C 98.93 389.48 95.18 383.99 89.79 382.22 C 85.31 380.63 80.74 378.98 75.96 378.71 C 67.92 378.75 60.65 382.78 54.17 387.17 C 50.46 389.79 47.97 393.72 45.98 397.72 C 43.29 403.78 43.37 410.54 43.50 417.03 C 43.36 424.45 43.66 431.89 44.92 439.21 C 45.71 444.22 48.37 448.64 49.76 453.47 C 52.77 463.08 60.50 469.93 66.22 477.90 C 68.18 480.95 71.50 482.54 74.31 484.66 C 79.42 489.47 85.92 492.33 91.76 496.13 C 106.18 502.49 122.13 506.76 137.99 504.99 C 143.83 503.92 149.99 504.87 155.61 502.66 C 162.28 500.05 169.46 498.97 176.01 495.99 C 180.79 494.04 184.76 490.67 189.32 488.32 C 194.07 485.92 196.76 481.07 200.62 477.59 C 206.17 470.83 209.51 462.55 211.91 454.21 C 213.13 450.17 212.65 445.85 213.85 441.81 C 214.68 438.74 216.00 435.48 214.65 432.35 C 212.33 426.64 213.42 420.40 212.19 414.49 C 209.72 400.66 204.08 387.73 199.38 374.59 C 198.34 369.26 194.83 364.98 193.13 359.92 C 191.78 354.43 187.97 350.05 186.27 344.70 C 183.35 335.92 177.46 328.55 174.15 319.93 C 170.38 309.89 165.77 300.21 161.85 290.23 C 157.30 280.59 154.94 270.15 151.77 260.03 C 149.95 255.80 148.48 251.41 148.07 246.80 C 147.56 241.17 146.04 235.71 144.89 230.19 C 143.77 225.28 144.72 220.16 143.50 215.27 C 142.81 212.56 141.92 209.84 142.05 207.00 C 142.33 200.35 142.38 193.68 142.08 187.03 C 141.65 181.90 144.48 177.17 144.06 172.03 C 143.70 163.55 146.04 155.31 147.41 147.02 C 147.99 139.97 150.55 133.34 152.34 126.55 C 153.34 122.57 155.37 118.98 156.84 115.18 C 159.55 109.15 161.69 102.86 165.23 97.23 C 170.72 88.77 176.08 80.18 182.26 72.20 C 189.69 64.35 196.90 56.15 205.77 49.87 C 213.12 42.81 222.11 37.79 230.96 32.84 C 242.16 25.10 255.29 20.99 267.72 15.72 C 280.42 12.13 293.25 9.03 306.12 6.16 C 311.47 4.45 317.24 5.32 322.56 3.49 C 325.59 2.46 328.78 2.14 331.97 2.44 M 295.85 102.61 C 294.68 104.95 291.18 103.87 290.22 106.42 C 287.04 106.55 285.67 109.90 283.66 111.85 C 283.15 113.55 282.52 115.22 281.51 116.69 C 281.55 117.85 281.29 118.93 280.72 119.91 C 280.27 129.95 280.57 140.01 280.48 150.06 C 280.57 264.73 280.32 379.41 280.61 494.08 C 282.21 495.86 283.38 498.64 286.12 498.70 C 287.35 501.42 290.66 500.11 292.87 501.32 C 297.04 503.20 301.67 502.49 306.09 502.88 C 307.82 503.39 309.61 503.70 311.43 503.48 L 312.00 505.59 L 312.56 503.46 C 320.35 503.71 328.16 503.68 335.95 503.42 C 337.58 503.27 339.40 503.66 340.88 502.77 C 343.06 502.57 345.26 502.51 347.46 502.54 L 347.59 501.54 C 348.92 501.80 350.00 501.52 350.81 500.68 C 352.50 500.19 355.71 501.37 355.69 498.68 C 358.76 499.06 359.26 495.60 361.29 494.15 C 361.71 492.81 362.04 491.43 362.20 490.03 C 362.31 440.47 362.08 390.90 362.31 341.34 C 375.98 341.46 389.64 341.36 403.31 341.40 L 403.98 340.02 L 404.73 341.36 C 431.31 341.53 457.90 341.19 484.48 341.53 L 484.51 340.51 C 487.55 340.75 491.54 339.23 491.73 335.73 C 492.09 335.58 492.81 335.26 493.18 335.10 C 493.48 332.53 494.55 330.09 494.47 327.47 L 495.51 327.55 C 495.24 322.32 496.74 317.22 496.35 312.00 C 496.09 306.68 496.90 301.27 495.85 296.02 C 495.58 293.84 495.56 291.64 495.61 289.45 L 494.61 289.47 C 494.57 287.12 493.92 284.85 493.44 282.56 C 491.22 282.68 491.69 280.23 491.25 278.77 C 488.89 278.38 487.50 275.94 484.92 276.18 C 484.45 276.05 483.51 275.79 483.04 275.66 C 442.60 275.46 402.15 275.83 361.71 275.48 C 361.66 239.83 361.74 204.19 361.66 168.54 C 405.85 168.19 450.04 168.54 494.23 168.37 C 495.55 167.32 497.06 166.48 498.23 165.25 C 498.44 164.11 499.12 163.47 500.27 163.34 C 500.41 161.39 500.98 159.46 502.44 158.07 C 503.03 155.93 501.66 152.83 503.52 151.26 C 503.85 141.02 504.03 130.75 503.50 120.51 C 501.92 117.62 502.94 113.99 502.35 110.82 C 501.98 110.64 501.23 110.27 500.86 110.08 C 500.97 106.52 498.29 103.96 495.26 102.61 C 493.86 102.37 492.38 102.41 491.10 101.74 C 428.68 101.56 366.26 101.74 303.85 101.65 C 301.59 103.18 298.46 102.15 295.85 102.61 Z" /> </g> <g id="#ffffffff"> <path fill="#ffffff" opacity="1.00" d=" M 295.85 102.61 C 298.46 102.15 301.59 103.18 303.85 101.65 C 366.26 101.74 428.68 101.56 491.10 101.74 C 492.38 102.41 493.86 102.37 495.26 102.61 C 498.29 103.96 500.97 106.52 500.86 110.08 C 501.23 110.27 501.98 110.64 502.35 110.82 C 502.94 113.99 501.92 117.62 503.50 120.51 C 504.03 130.75 503.85 141.02 503.52 151.26 C 501.66 152.83 503.03 155.93 502.44 158.07 C 500.98 159.46 500.41 161.39 500.27 163.34 C 499.12 163.47 498.44 164.11 498.23 165.25 C 497.06 166.48 495.55 167.32 494.23 168.37 C 450.04 168.54 405.85 168.19 361.66 168.54 C 361.74 204.19 361.66 239.83 361.71 275.48 C 402.15 275.83 442.60 275.46 483.04 275.66 C 483.51 275.79 484.45 276.05 484.92 276.18 C 487.50 275.94 488.89 278.38 491.25 278.77 C 491.69 280.23 491.22 282.68 493.44 282.56 C 493.92 284.85 494.57 287.12 494.61 289.47 L 495.61 289.45 C 495.56 291.64 495.58 293.84 495.85 296.02 C 496.90 301.27 496.09 306.68 496.35 312.00 C 496.74 317.22 495.24 322.32 495.51 327.55 L 494.47 327.47 C 494.55 330.09 493.48 332.53 493.18 335.10 C 492.81 335.26 492.09 335.58 491.73 335.73 C 491.54 339.23 487.55 340.75 484.51 340.51 L 484.48 341.53 C 457.90 341.19 431.31 341.53 404.73 341.36 L 403.98 340.02 L 403.31 341.40 C 389.64 341.36 375.98 341.46 362.31 341.34 C 362.08 390.90 362.31 440.47 362.20 490.03 C 362.04 491.43 361.71 492.81 361.29 494.15 C 359.26 495.60 358.76 499.06 355.69 498.68 C 355.71 501.37 352.50 500.19 350.81 500.68 C 350.00 501.52 348.92 501.80 347.59 501.54 L 347.46 502.54 C 345.26 502.51 343.06 502.57 340.88 502.77 C 339.40 503.66 337.58 503.27 335.95 503.42 C 328.16 503.68 320.35 503.71 312.56 503.46 L 312.00 505.59 L 311.43 503.48 C 309.61 503.70 307.82 503.39 306.09 502.88 C 301.67 502.49 297.04 503.20 292.87 501.32 C 290.66 500.11 287.35 501.42 286.12 498.70 C 283.38 498.64 282.21 495.86 280.61 494.08 C 280.32 379.41 280.57 264.73 280.48 150.06 C 280.57 140.01 280.27 129.95 280.72 119.91 C 281.29 118.93 281.55 117.85 281.51 116.69 C 282.52 115.22 283.15 113.55 283.66 111.85 C 285.67 109.90 287.04 106.55 290.22 106.42 C 291.18 103.87 294.68 104.95 295.85 102.61 Z" /> </g> <g id="#019b7f80"> <path fill="#019b7f" opacity="0.50" d=" M 661.38 576.31 C 665.91 574.31 669.68 570.99 674.16 568.88 C 668.22 575.25 659.53 577.60 652.45 582.34 C 640.01 587.49 627.66 593.08 614.53 596.30 C 608.95 598.85 602.67 598.67 596.99 600.84 C 594.02 601.91 590.75 601.48 587.79 602.58 C 578.16 606.47 567.36 604.15 557.66 607.79 C 557.51 608.30 557.21 609.31 557.06 609.81 C 561.09 614.16 565.28 618.35 569.29 622.71 C 576.02 627.24 581.85 632.92 588.30 637.83 C 592.62 640.86 597.27 643.40 601.72 646.24 C 604.64 648.24 608.27 648.78 611.18 650.82 C 617.13 654.84 624.15 656.71 630.81 659.23 C 635.66 661.07 640.85 661.43 645.93 662.25 C 651.35 663.03 656.68 661.39 662.09 661.30 C 670.23 659.79 678.05 656.92 685.78 654.00 C 689.00 652.21 691.88 649.87 695.08 648.03 C 708.00 639.56 717.12 626.44 723.68 612.69 C 725.42 609.48 727.70 606.60 729.36 603.34 C 732.66 603.43 737.09 602.44 739.08 605.90 C 740.69 607.65 739.83 610.75 742.00 612.00 L 742.00 626.84 C 738.92 631.40 741.49 637.11 739.65 642.02 C 736.61 650.25 736.04 659.28 731.94 667.14 C 730.19 671.11 727.39 674.45 725.35 678.25 C 722.45 684.41 716.27 687.89 711.53 692.46 C 703.84 699.51 694.13 703.66 684.52 707.36 C 680.35 708.66 676.25 710.40 671.84 710.73 C 667.43 711.16 663.47 713.57 659.00 713.67 C 654.32 714.41 649.61 714.48 644.90 714.74 C 637.69 716.38 630.29 715.18 622.98 715.64 C 612.89 716.19 603.00 713.49 592.94 713.56 C 587.65 713.42 583.00 710.33 577.68 710.23 C 565.10 706.99 552.80 702.66 540.47 698.55 C 531.28 694.08 521.65 690.47 512.98 684.99 C 504.94 681.47 498.21 675.77 490.75 671.25 C 485.22 667.07 478.69 664.08 474.33 658.52 C 473.80 658.43 472.76 658.24 472.24 658.15 C 472.35 658.66 472.58 659.69 472.69 660.20 C 470.97 657.89 469.92 655.18 468.34 652.79 C 464.34 647.38 458.84 643.39 453.55 639.35 C 450.39 636.87 446.41 635.92 442.99 633.91 C 434.48 629.05 425.22 625.74 416.45 621.41 C 409.06 617.69 401.40 613.27 397.20 605.84 C 394.83 602.32 395.58 597.90 395.58 593.91 C 395.32 589.70 398.40 586.53 400.21 583.04 C 401.41 583.04 402.62 583.05 403.83 583.07 C 405.86 585.13 407.81 587.27 409.59 589.57 C 407.51 587.81 405.53 585.94 403.79 583.85 C 402.66 583.94 401.54 584.05 400.42 584.16 C 396.54 590.67 394.39 599.39 398.55 606.30 C 402.99 613.57 410.92 617.58 418.30 621.26 C 427.63 625.56 437.14 629.46 446.18 634.37 C 444.52 630.14 440.91 627.35 438.17 623.91 C 432.80 617.56 427.79 610.91 422.26 604.69 C 420.14 602.40 418.78 599.56 416.95 597.06 C 415.00 594.72 412.51 592.91 410.53 590.61 C 420.69 591.31 430.88 590.89 441.05 591.00 C 497.69 591.00 554.32 591.00 610.96 591.00 C 616.98 590.97 623.09 591.33 629.01 589.93 C 636.36 588.29 643.08 584.77 650.12 582.19 C 654.13 580.75 657.51 578.06 661.38 576.31 Z" /> <path fill="#019b7f" opacity="0.50" d=" M 70.74 570.98 C 82.24 577.27 94.12 582.93 106.27 587.88 C 111.89 590.12 117.95 591.07 123.98 591.01 C 169.67 590.98 215.36 591.02 261.06 590.99 C 264.84 590.92 268.63 590.96 272.40 591.37 C 272.26 611.59 272.37 631.81 272.34 652.03 C 272.90 661.34 272.64 670.66 272.72 679.98 C 272.77 682.30 272.45 684.63 271.79 686.87 C 270.74 690.37 270.60 694.29 268.23 697.26 C 266.56 699.38 264.78 701.79 262.07 702.58 C 257.87 703.86 253.46 705.34 249.01 704.45 C 244.44 703.45 239.76 702.44 235.67 700.06 C 233.19 698.59 230.26 697.72 227.38 698.34 C 225.50 699.52 224.43 701.73 224.57 703.95 C 224.32 712.33 224.18 720.73 224.57 729.11 C 224.72 734.27 229.12 738.28 233.93 739.43 C 238.29 741.36 243.02 741.94 247.63 743.00 L 239.60 743.00 C 234.91 739.80 227.70 739.89 225.03 734.11 C 221.23 722.96 222.25 710.83 224.61 699.47 C 225.63 698.47 226.66 697.46 227.67 696.46 C 233.19 697.00 237.75 700.45 242.90 702.19 C 248.87 703.03 255.00 702.95 260.99 702.25 C 265.55 700.53 268.27 696.00 269.85 691.61 C 272.45 680.62 271.29 669.27 271.57 658.07 C 270.87 658.21 269.46 658.49 268.75 658.63 C 263.25 663.93 256.93 668.25 250.54 672.39 C 245.31 676.75 239.02 679.45 233.47 683.33 C 225.62 687.11 217.87 691.08 210.11 695.06 C 205.09 697.73 199.51 699.00 194.25 701.09 C 187.14 704.52 179.55 706.96 171.78 708.32 C 165.73 710.71 159.18 711.01 152.99 712.88 C 145.13 714.89 136.95 714.06 129.02 715.55 C 119.65 715.54 110.25 715.77 100.89 715.42 C 92.39 713.70 83.29 715.29 75.16 711.80 C 67.76 711.41 60.88 708.45 54.01 705.95 C 44.66 702.38 35.62 697.67 28.37 690.66 C 24.63 686.73 19.49 684.04 16.98 679.02 C 13.79 672.95 9.22 667.54 7.40 660.81 C 5.70 654.07 3.28 647.55 1.67 640.79 C 1.31 636.79 2.05 632.72 1.19 628.77 L 0.00 628.01 L 0.00 613.22 C 1.40 609.75 2.39 605.95 5.28 603.36 C 7.69 603.37 10.10 603.36 12.51 603.37 C 14.66 607.17 17.45 610.58 19.37 614.51 C 24.43 625.14 31.11 635.31 40.44 642.67 C 44.72 647.23 50.49 649.79 55.31 653.68 C 61.34 655.64 67.09 658.45 73.33 659.78 C 77.80 661.08 82.45 661.41 87.02 662.19 C 92.72 663.02 98.37 661.43 104.05 661.11 C 110.97 659.55 117.66 657.00 124.21 654.27 C 137.67 647.65 151.40 640.92 162.47 630.56 C 167.36 626.07 173.48 622.96 177.54 617.59 C 180.00 614.35 184.34 612.17 184.96 607.84 C 177.28 605.44 169.23 604.76 161.27 604.28 C 155.64 601.79 149.23 602.79 143.60 600.31 C 140.27 598.95 136.63 598.97 133.16 598.22 C 125.06 595.38 116.60 593.60 108.69 590.22 C 100.98 586.92 93.17 583.86 85.81 579.82 C 80.44 577.55 74.90 575.23 70.74 570.98 Z" /> <path fill="#019b7f" opacity="0.50" d=" M 351.79 574.83 C 355.85 572.21 360.77 571.59 365.47 571.02 C 362.98 576.58 359.62 581.90 358.61 588.01 C 358.41 590.97 358.21 593.96 357.37 596.84 C 355.96 602.20 358.04 607.59 358.40 612.94 C 358.46 617.96 361.02 622.41 363.03 626.86 C 364.73 630.77 368.37 633.50 369.71 637.60 C 364.80 632.65 361.35 626.40 358.87 619.95 C 358.68 616.12 356.19 612.87 356.44 609.00 C 355.93 602.97 356.25 596.94 356.68 590.92 C 357.75 586.39 359.63 582.09 360.87 577.61 C 361.99 576.09 362.79 574.39 363.13 572.53 C 352.93 573.72 344.21 580.17 337.05 587.14 C 335.05 588.80 332.41 589.68 330.86 591.87 C 327.31 596.62 323.17 600.89 319.53 605.58 C 319.39 600.74 319.26 595.90 319.49 591.07 C 323.26 590.96 327.20 591.32 330.82 590.01 C 334.87 588.33 337.92 585.05 341.18 582.24 C 344.39 579.33 348.10 577.07 351.79 574.83 Z" /> <path fill="#019b7f" opacity="0.50" d=" M 316.09 703.95 C 316.66 700.72 315.96 697.07 318.44 694.46 C 317.40 700.01 316.90 705.75 314.73 711.02 C 311.93 720.54 305.65 728.73 297.94 734.85 C 292.80 737.77 287.72 741.05 281.83 742.22 L 282.98 743.00 L 273.61 743.00 C 278.13 741.69 282.90 741.35 287.24 739.44 C 293.06 737.00 298.71 733.79 303.01 729.07 C 309.90 722.27 313.37 713.04 316.09 703.95 Z" /> </g> </svg> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/logo.svg --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/main.js ----> --------------------------------------------------------------------------------------------------------------------------- // TODO: you will implement this! const electron = require('electron'); const app = electron.app const BrowserWindow = electron.BrowserWindow;app.commandLine.appendSwitch('--enable-experimental-web-platform-features'); const fs = require('fs'); const path = require('path'); const jQuery = require('jquery'); const username = require('username'); var sudo = require('sudo-prompt'); var DecompressZip = require('decompress-zip'); let mainWindow = null app.on('ready', () => { console.log('The application is ready.') mainWindow = new BrowserWindow({icon: 'icon.png', frame: false}) mainWindow.loadURL('file://' + path.join(__dirname, 'framlr.html')) mainWindow.on('closed', function() { mainWindow = null }) }) --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/main.js --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/manifest.webapp ----> --------------------------------------------------------------------------------------------------------------------------- { "id": "framework", "application": "app", "name": "FrameworkJS", "description": "The framework for the Web 3.0", "linux_icon": "", "ime_default_softkey_bar": true, "launch_path": "/index.html", "type": "privileged", "icons": { "56": "/notes/icon_56.png", "_comment1": "<< KaiOS icon", "60": "/notes/icon_60.png", "64": "/notes/icon_64.png", "84": "/notes/icon_84.png", "_comment2": "<< KaiOS icon", "112": "/notes/icon_112.png", "_comment3": "<< KaiOS icon", "128": "/notes/icon_128.png", "512": "/notes/icon_512.png" }, "version": "3", "developer": { "name": "Daniella Mesquita", "url": "https://daniellmesquita.eth.link/" }, "locales": { "en-US": { "name": "FrameworkJS", "description": "The framework for the Web 3.0" } }, "floflispackager": { "exportsfolder": "." }, "default_locale": "en-US", "author": "plasmmer", "url": "index.html", "icon": "logo.svg", "width": "700", "height": "450", "default_locale": "en-US", "cursor": true } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/manifest.webapp --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/package.json ----> --------------------------------------------------------------------------------------------------------------------------- { "name": "HTML5AppsPlatformPackager", "no_proxy_server": false, "disable_http_cache": false, "ignore_certificate_errors": false, "main": "main.js", "main_html": "index.html", "window": { "exe_icon": "logo.png", "kiosk": false, "resizable": true, "y": 100, "skip_taskbar": false, "show": true, "title_bar_style": "default", "title": "HTML5AppsPlatform and Floflis Packager", "max_width": "", "mac_icon": "logo.png", "min_height": "", "dark_theme": false, "use_content_size": false, "transparent": true, "min_width": "", "background_color": "#000000", "auto_hide_menu_bar": true, "enable_larger_than_screen": false, "width": 800, "x": 100, "frame": true, "icon": "logo.png", "height": 600, "type": "desktop", "always_on_top": false, "max_height": "", "accept_first_mouse": false, "disable_auto_hide_cursor": false, "fullscreen": false, "center": true }, "proxy_bypass_list": "", "js_flags": "", "ppapi_flash_path": "", "web": { "text_areas_are_resizable": true, "experimental_features": false, "direct_write": true, "images": true, "allow_displaying_insecure_content": false, "preload": "", "node_integration": true, "webgl": true, "zoom_factor": 100, "allow_running_insecure_content": false, "web_security": true, "webaudio": true, "experimental_canvas_features": false, "partition": "", "plugins": false, "blink_features": "", "javascript": true }, "disable_renderer_backgrounding": false, "user_agent": "", "app_name": "HTML5AppsPlatform and Floflis Packager", "ppapi_flash_version": "", "ssl_version_fallback_min": "", "description": "", "remote_debugging_port": "", "proxy_server": "", "host_resolver_rules": "", "log_net_log": "", "webkit": { "plugin": false, "java": false, "page-cache": false }, "ignore_connections_limit": "", "web_preferences": {}, "version": "1.0.0", "proxy_pac_url": "", "cipher_suite_blacklist": "", "chromium_args": "", "host_rules": "", "inject_js_end": "", "inject_js_start": "", "client_certificate": "", "dependencies": { "base64-img": "^1.0.4", "dat-node": "^3.5.15", "decompress-zip": "^0.2.2", "electron": "^4.0.0", "fs-extra": "^3.0.1", "fullname": "^4.0.1", "jquery": "^3.2.1", "sudo-prompt": "^9.0.0", "username": "^5.1.0" }, "devDependencies": { "electron-packager": "^13.0.0" }, "scripts": { "start": "electron .", "build": "electron-packager . central --platform=linux --arch=x64,ia32 --overwrite --app-version=1.0.0 --electron-version=4.2.12 --icon=icon.png" } } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/package.json --------------------------------------------------------------------------------------------------------------------------- package (test Floflis Packager validation).json --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/platform-kaios.js ----> --------------------------------------------------------------------------------------------------------------------------- document.querySelector("#head").innerHTML += `<link rel="stylesheet" type="text/css" href="css/root.css">`; document.querySelector("#head").innerHTML += `<link rel="stylesheet" type="text/css" href="css/header.css">`; document.querySelector("#head").innerHTML += `<link rel="stylesheet" type="text/css" href="css/softkey.css">`; function handleKeyDown(evt) { switch (evt.key) { case 'SoftLeft': // Action case press left key softkeyCallback.left(); break; case 'SoftRight': // Action case press right key softkeyCallback.right(); break; case 'Enter': // Action case press center key softkeyCallback.center(); break; } }; document.addEventListener('keydown', handleKeyDown); --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/platform-kaios.js --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/platform-kaios-custom.js ----> --------------------------------------------------------------------------------------------------------------------------- document.querySelector("#placefirst").innerHTML += `<header><span>FrameworkJS r3</span></header>`; document.querySelector("#body").innerHTML += `<style>#landinglogo{margin-top:13px}</style>`; //var insertheaderfirst = document.getElementById('body'); //insertheaderfirst.insertBefore(document.createElement("header"), container.firstChild); //insertheaderfirst.insertBefore(document.TextNode("<header><span>FrameworkJS r3</span></header>"), container.firstChild); // This type of JS isn't supported on KaiOS //document.querySelector("#body").innerHTML += `<div class="statusbar-placeholder"></div><header class="fm-header h1"><span>FrameworkJS r3</span></header>`; document.querySelector("#body").innerHTML += `<footer class="softkey"><div id="softkey-left">Back</div><div id="softkey-center">RELOAD</div><div id="softkey-right">More</div></footer>`; document.querySelector("#body").innerHTML += `<style>h1{font-size:25px}span{font-size:12px}h2{font-size:20px}</style>`; document.querySelector("#landinglogo").innerHTML = `<img width="50px" src="logo.svg"/>`; document.querySelector("#landingtitle").innerHTML = ``; const softkeyCallback = { left: function() { window.close() }, center: function() { document.location.reload(true) }, right: function() { console.log('You click on SoftRight') } }; --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/platform-kaios-custom.js --------------------------------------------------------------------------------------------------------------------------- platform-not-kaios.js platform-not-kaios-custom.js --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/platform-not-kaios-not-firefox.js ----> --------------------------------------------------------------------------------------------------------------------------- var OSName="Unknown OS"; if (navigator.userAgent.indexOf("Altaica")!=-1) OSName="Altaica"; if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows"; if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS"; if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX"; if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux"; // using these directly from index.js says OSName is undefined; have to fix it var envlogtxt = "Environment detected: " // also had to place it again; fix like in the previous // from https://ourcodeworld.com/articles/read/390/how-to-know-if-your-application-is-running-in-cordova-or-a-web-browser if(window.hasOwnProperty("cordova")){ console.log(envlogtxt +"Cordova."); var environmenttext = document.getElementById('environment'); var text = document.createTextNode(OSName); environmenttext.appendChild(text); } // Or if(typeof(cordova) == "object"){ console.log(envlogtxt +"Cordova."); var environmenttext = document.getElementById('environment'); var text = document.createTextNode(OSName); environmenttext.appendChild(text); } // Or if(!!window.cordova){ console.log(envlogtxt +"Cordova."); var environmenttext = document.getElementById('environment'); var text = document.createTextNode(OSName); environmenttext.appendChild(text); } // from https://ourcodeworld.com/articles/read/390/how-to-know-if-your-application-is-running-in-cordova-or-a-web-browser var userAgent = navigator.userAgent.toLowerCase(); if (userAgent.indexOf(' electron/') > -1) { console.log(envlogtxt +"Electron⚛"); var environmenttext = document.getElementById('environment'); var text = document.createTextNode("Electron⚛"); environmenttext.appendChild(text); } if(OSName == 'Altaica'){ console.log(envlogtxt +OSName +"."); var environmenttext = document.getElementById('environment'); var text = document.createTextNode(OSName); environmenttext.appendChild(text); } if("file:" == document.location.protocol) { console.log(envlogtxt +"File protocol; Local page."); //document.querySelector("#environment").innerHTML = `File protocol; Local page.`; } if("localhost:" == document.location.protocol) { console.log(envlogtxt +"Localhost."); //document.querySelector("#environment").innerHTML = `Localhost`; } if("ipfs:" == document.location.protocol){console.log(envlogtxt +"IPFS.");} if(window.location.href.match(/ba(.*)\.ipfs\./)){console.log(envlogtxt +"IPFS.");} if(window.location.href.indexOf("/ipfs/Qm") > -1){console.log(envlogtxt +"IPFS.");} if(window.location.href.indexOf("/ipfs/ba") > -1){console.log(envlogtxt +"IPFS.");} if((navigator.userAgent.indexOf("Opera") || navigator.userAgent.indexOf('OPR')) != -1 ) { alert('Opera'); } else if(navigator.userAgent.indexOf("Chrome") != -1 ) { alert('Chrome'); /* document.querySelector("#environment").innerHTML = `Chrome`; */ } else if(navigator.userAgent.indexOf("Safari") != -1) { alert('Safari'); } else if(navigator.userAgent.indexOf("Firefox") != -1 ) { //alert('Firefox'); } else if((navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true )) //IF IE > 10 { alert('IE'); } else { alert('unknown'); } //function setInnerHTML(element, content) { // element.innerHTML = content; // return element; //} if(typeof(cordova) !== "object"){ if (OSName !== 'Altaica'){ if (userAgent.indexOf(' electron/') <= -1){ document.querySelector("#splashloader").innerHTML = ``; console.log(envlogtxt +"Not mobile and not desktop app."); var environmenttext = document.getElementById('environment'); var text = document.createTextNode("Not mobile and not desktop app."); environmenttext.appendChild(text); requirejs(["platform-not-mobile-not-desktop.js"],function(util){}); requirejs(["platform-not-mobile-not-desktop-custom.js"],function(util){}); } } } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/FrameworkJavascript/Framework.js/r3/app/platform-not-kaios-not-firefox.js --------------------------------------------------------------------------------------------------------------------------- platform-not-mobile-not-desktop.js platform-not-mobile-not-desktop-custom.js require.js
OmniNotesFOSS notes by Daniella Mesquita ---- I would like to understand how to have the super mind of my mom and any other people being able to listen music while reasoning while writing! 11/11/22 17:25 ---- We need a (physical) sound player which supports Linux symlinks. 11/17/22 17:50 Comment: My mom's flashdrive have a "fav" folder I made so she have an manual playlist with her favorite of all songs. How to do it without surpassing KB of new data? Through formating the flashdrive as EXT4 and through symlinks 🥰 11/20/22 17:13 ---- Bash/Shell is the witches' spell. 11/20/22 17:11 ---- These are not a "one-man work", but one-girl works. 11/22/22 23:53 ---- Minha mãe viu no Twitter do Fuxico Gospel o Silas Malafaia chamando a esquerda de "ditadores"; prontamente ela respondeu: "ditadores são os seus irmãos. Mas não os irmãos em Cristo..." Orgulho 🥰 11/23/22 19:29 ---- A mãe profetizava que as igrejas pro mal iam se unir. E foi exatamente isso que o bolsonarismo chegou e fez. 11/23/22 19:32 ---- Sem excessão, pastor bolsonarista = pastor que se aproveita dos dízimos/ofertas. 11/23/22 23:18 ---- Não deixe os ignorantes te tornarem ignorante; ignore os ignorantes. 11/24/22 01:45 ---- O mistério de Deus não é inexplicável, mas inexplicado. 11/24/22 13:34 ---- Bolsonaro e Elon Musk, juntos, são a prova de que "o anti-cristo" não é uma só pessoa. Existem vários anti-cristos mas uma mesma agenda. 11/24/22 14:23 ---- Muitos "patriotas" estão torcendo para o Brasil perder nesta Copa, tal como torceram em 2014; eles nunca admitiriam o Brasil ganhar a Copa com Lula Presidente em 2023. 11/24/22 14:25 ---- Deus veio escandalizar àqueles que usam a ciência para zombar da religião; Deus veio escandalizar àqueles que usam a religião para zombar da ciência. Assim, para que homem nenhum se glorie. Deus fez o universo de forma científica. Deus "surgiu" (existe) de forma científica. Assim, o espiritual (a energia de ser, de declarar "eu sou") e a ciência se convergem (não são times de futebol nem lados políticos para serem limitados à mero objeto de discussões/narrativas/falácias/competições de ego). Nada existiria se tudo não existisse. Com esses paradoxos se contradizendo, a existência sempre existiu e ganhou raciocínio. "Ninguém explica Deus" é uma ideia obscurantista da qual instituições como a Igreja Universal muito se orgulhariam; pois infundem a manipulação de medo+luz. Uma vez Nelson Ned (que foi e é um grande homem apesar da seguinte declaração) falou uma frase errônea mais ou menos assim: "se Deus deixar de ser mistério, deixa de ser Deus". Então "ninguém" explica Deus incluindo o próprio Deus?! Acaso Deus é limitado à ponto de não-simbolicamente "se arrepender" de fazer os humanos e, Deus é limitado à ponto de não saber se explicar?! Então se Deus enviar ume profete e falar em sua boca explicando à si, irão apedrejar e crucificar elu tal como fizeram contra Cristo? Crucificam Jesus em nome de "Jesus", tal como cuidando fazer um serviço à dEUs, perseguiram e mataram o próprio Jesus. Deus é muito além do obscurantismo do "inexplicável porque sim apenas acredite e faça o que eu mando se quiser ganhar". "Deus acima de todos" quer dizer "dEUs acima de TODOS". A maioria dos pastores não lembram ou nunca leram isso na Bíblia: que naquele dia o próprio Jesus vai entregar sua coroa e nada pediremos à ele, mas ao próprio "Pai" (ou Mãe, pois Deus não tem gênero). Certamente leram e ignoraram a lição sobre descer da glória e expiar nossos pecados entre nós, e trocar lavar os pés igualmente. Deus não está acima de nós pois, em primeiro lugar, a Terra não é plana. Estamos entre Deus e Deus entre nós. Ouso dizer mais: Deus cabe na palma da nossa mão tanto quanto cabemos na palma da mão de Deus. Deus é afísico, atemporal e adimensional. E "Deus" está dentro de nós tanto quanto estamos dentro da Existência; e se existimos e temos raciocínio e Consciência, somos existência assim como a existência é nós. Se o Filho do Homem (primeiro modelo do projeto humano) e a Existência são um, nós não seríamos diferentes. O 7 não está acima do 1 (e Jesus nos ensinou isso quando os fariseus tentaram o incriminar por comer milho no Sétimo Dia). A Consciência de Deus está distribuída entre bilhões de Consciências pelo mundo. Então "Deus" não está acima dos direitos humanos, pois não pode negar-se à si mesmo. 11/25/22 00:59
in reply to: 0xfa7a65b6f582c5b76b054b2c921550d457e44bc33f8812b61f11a7a33572edf5. https://github.com/Floflis/Floflis-Central_scripts.git --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/Tasks.txt ----> --------------------------------------------------------------------------------------------------------------------------- nfts-parse.sh: improve looping, based in get-c2-proj-addons.sh nfts-parse.sh: don't repeat loop for different networks for ensname.sh/ethaddress-sybil_verify.sh: don't work if no ens/twitter handle comes for C2: don't add elements if there's no ENS name/Twitter sybil --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/Tasks.txt --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/tokenbalance.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e ethaddress="$(jq -r '.eth' /1/config/user.json)" ethuser="$(ethereal ens domain get --address=$ethaddress)" rpc_polygon="https://rpc-mainnet.maticvigil.com/" rpc_xdai="https://rpc.gnosischain.com/" tokenFULLbalancematic="$(ethereal --connection=$rpc_polygon token balance --holder=$ethaddress --token=0xea2746be6cf47f376e9b9d6b78a47707559c3a8e)" tokenbalancematic="$(printf "%.2f\n" $(echo "$tokenFULLbalancematic" | bc -l))" tokenFULLbalancexdai="$(ethereal --connection=$rpc_xdai token balance --holder=$ethaddress --token=0x4a59AD9993d763B6125A52dAc5A44f4aE570E793)" tokenbalancexdai="$(printf "%.2f\n" $(echo "$tokenFULLbalancexdai" | bc -l))" #tokentotalbalance="$((tokenbalancematic + tokenbalancexdai))" #tokentotalbalance="$(expr $tokenbalancematic - $tokenbalancexdai)" #((count = tokenbalancematic - tokenbalancexdai)) tokentotalbalance=$(echo "$tokenbalancematic + $tokenbalancexdai"|bc) echo "User: $ethuser ($ethaddress)" echo "----" if [ "$tokenbalancematic" != "0" ]; then echo "FLOF balance @ Polygon: $tokenbalancematic" fi if [ "$tokenbalancexdai" != "0" ]; then echo "FLOF balance @ XDai: $tokenbalancexdai" fi echo "----" echo "FLOF total balance: $tokentotalbalance" #echo "FLOF total balance: $count" if [ "$(jq -r '.flof' /1/config/tokens.json)" = "null" ] || [ "$(jq -r '.flof' /1/config/tokens.json)" = "" ]; then echo "Its your first time using tokenbalance.sh!" echo "Initializing..." cat > /1/config/tokens.json << ENDOFFILE { "flof": { "polygon": "", "xdai": "", "total": "", "totalusd":"" } } ENDOFFILE fi contents="$(jq ".flof.polygon = \"$tokenbalancematic\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".flof.xdai = \"$tokenbalancexdai\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".flof.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json tokenUSDtotalbalanceget="$(curl -s "https://api.coingecko.com/api/v3/simple/price?ids=floflis&vs_currencies=usd" | jq -r ".floflis.usd")" tokenUSDtotalbalance=$(echo "$tokentotalbalance * $tokenUSDtotalbalanceget"|bc) contents="$(jq ".flof.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json bash tokenbalance-others.sh --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/tokenbalance.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/tokenbalance-others.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e ethaddress="$(jq -r '.eth' /1/config/user.json)" #rpc_ethereum="https://main-light.eth.linkpool.io/" rpc_polygon="https://rpc-mainnet.maticvigil.com/" rpc_xdai="https://rpc.gnosischain.com/" #rpc_ronin="" #cat /1/config/tokens.json | jq '. + {"eth":{"ethereum":"","polygon":"","xdai":"","ronin":"","total":""}}' | tee /1/config/tokens.json if [ "$(jq -r '.eth' /1/config/tokens.json)" = "null" ]; then echo "Its your first time using tokenbalance-others.sh!" echo "Initializing for ETH token..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"eth":{"ethereum":"","polygon":"","xdai":"","ronin":"","total":"","totalusd":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi #cat /1/config/tokens.json | jq '. + {"pla":{"polygon":"","xdai":"","total":""}}' | tee /1/config/tokens.json if [ "$(jq -r '.pla' /1/config/tokens.json)" = "null" ]; then echo "Initializing for PLA token..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"pla":{"polygon":"","xdai":"","total":"","totalusd":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi #game polygon if [ "$(jq -r '.game' /1/config/tokens.json)" = "null" ]; then echo "Initializing for GAME token..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"game":{"polygon":"","xdai":"","total":"","totalusd":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi #cat /1/config/tokens.json | jq '. + {"mana":{"ethereum":"","polygon":"","xdai":"","total":""}}' | tee /1/config/tokens.json if [ "$(jq -r '.mana' /1/config/tokens.json)" = "null" ]; then echo "Initializing for MANA token..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"mana":{"ethereum":"","polygon":"","xdai":"","total":"","totalusd":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi if [ "$(jq -r '.sand' /1/config/tokens.json)" = "null" ]; then echo "Initializing for SAND token..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"sand":{"ethereum":"","polygon":"","total":"","totalusd":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi if [ "$(jq -r '.dai' /1/config/tokens.json)" = "null" ]; then echo "Initializing for DAI token..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"dai":{"ethereum":"","polygon":"","xdai":"","total":"","totalusd":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi if [ "$(jq -r '.gno' /1/config/tokens.json)" = "null" ]; then echo "Initializing for GNO token..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"gno":{"ethereum":"","polygon":"","xdai":"","total":"","totalusd":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi if [ "$(jq -r '.matic' /1/config/tokens.json)" = "null" ]; then echo "Initializing for MATIC token..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"matic":{"ethereum":"","polygon":"","xdai":"","total":"","totalusd":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi if [ "$(jq -r '.slp' /1/config/tokens.json)" = "null" ]; then echo "Initializing for SLP token..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"slp":{"ethereum":"","polygon":"","xdai":"","ronin":"","total":"","totalusd":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi if [ "$(jq -r '.axs' /1/config/tokens.json)" = "null" ]; then echo "Initializing for AXS token..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"axs":{"ethereum":"","polygon":"","xdai":"","total":"","totalusd":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi if [ "$(jq -r '.usdc' /1/config/tokens.json)" = "null" ]; then echo "Initializing for USDC token..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"usdc":{"ethereum":"","polygon":"","xdai":"","total":"","totalusd":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi #cat /1/config/tokens.json | jq '. + {"dai":{"ethereum":"","polygon":"","xdai":"","total":""}}' | tee /1/config/tokens.json #cat /1/config/tokens.json | jq '. + {"matic":{"ethereum":"","polygon":"","total":""}}' | tee /1/config/tokens.json #cat /1/config/tokens.json | jq '. + {"slp":{"ethereum":"","ronin":"","total":""}}' | tee /1/config/tokens.json #slp ethereum 0xCC8Fa225D80b9c7D42F96e9570156c65D6cAAa25 #slp ronin 0xa8754b9fa15fc18bb59458815510e40a12cd2014 #cat /1/config/tokens.json | jq '. + {"axs":{"ethereum":"","ronin":"","total":""}}' | tee /1/config/tokens.json #axs ethereum #axs ronin #cat /1/config/tokens.json | jq '. + {"usdc":{"ethereum":"","polygon":"","xdai":"","ronin":"","total":""}}' | tee /1/config/tokens.json #usdc ethereum #usdc polygon #usdc xdai #usdc ronin if [ "$(jq -r '.usd' /1/config/tokens.json)" = "null" ]; then echo "Initializing for USD..." tmp="$(mktemp)"; cat /1/config/tokens.json | jq '. + {"usd":{"total":""}}' >"$tmp" && mv "$tmp" /1/config/tokens.json fi processtoken () { if [ "$currenttoken" = "eth" ]; then currenttoken_ethereum="" currenttoken_polygon="0x7ceb23fd6bc0add59e62ac25578270cff1b9f619" currenttoken_xdai="0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1" currenttoken_coingeckoname="ethereum" echo "Updating ETH token..." fi if [ "$currenttoken" = "pla" ]; then currenttoken_ethereum="" currenttoken_polygon="0x1b07d1ae73fa0601e15ac6bd71807469d9d650c6" currenttoken_xdai="0x32F13A6585D38e14D4F70c481e58A23767964a07" currenttoken_coingeckoname="" echo "Updating PLA token..." fi if [ "$currenttoken" = "game" ]; then currenttoken_ethereum="" currenttoken_polygon="0xa9d47498125dff1647957cf211ea9a010cc0953e" currenttoken_xdai="0x4a1901b120e777a2c3d0A19ef41B264cdBCdEe69" currenttoken_coingeckoname="" echo "Updating GAME token..." fi if [ "$currenttoken" = "mana" ]; then currenttoken_ethereum="0x0f5d2fb29fb7d3cfee444a200298f468908cc942" currenttoken_polygon="0xa1c57f48f0deb89f569dfbe6e2b7f46d33606fd4" currenttoken_xdai="0x7838796B6802B18D7Ef58fc8B757705D6c9d12b3" currenttoken_coingeckoname="decentraland" echo "Updating MANA token..." fi if [ "$currenttoken" = "sand" ]; then currenttoken_ethereum="0x3845badade8e6dff049820680d1f14bd3903a5d0" currenttoken_polygon="0xbbba073c31bf03b8acf7c28ef0738decf3695683" currenttoken_xdai="" currenttoken_coingeckoname="the-sandbox" echo "Updating SAND token..." fi if [ "$currenttoken" = "dai" ]; then currenttoken_ethereum="0x6b175474e89094c44da98b954eedeac495271d0f" currenttoken_polygon="0x8f3cf7ad23cd3cadbd9735aff958023239c6a063" currenttoken_xdai="" currenttoken_coingeckoname="dai" echo "Updating DAI token..." fi if [ "$currenttoken" = "gno" ]; then currenttoken_ethereum="0x6810e776880c02933d47db1b9fc05908e5386b96" currenttoken_polygon="0x5ffd62d3c3ee2e81c00a7b9079fb248e7df024a8" currenttoken_xdai="0x9c58bacc331c9aa871afd802db6379a98e80cedb" currenttoken_coingeckoname="gnosis" echo "Updating GNO token..." fi if [ "$currenttoken" = "matic" ]; then currenttoken_ethereum="0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0" currenttoken_polygon="" currenttoken_xdai="0x7122d7661c4564b7C6Cd4878B06766489a6028A2" currenttoken_coingeckoname="matic-network" echo "Updating MATIC token..." fi if [ "$currenttoken" = "slp" ]; then currenttoken_ethereum="0xCC8Fa225D80b9c7D42F96e9570156c65D6cAAa25" currenttoken_polygon="" currenttoken_xdai="" # currenttoken_ronin="0xa8754b9fa15fc18bb59458815510e40a12cd2014" currenttoken_coingeckoname="smooth-love-potion" echo "Updating SLP token..." fi if [ "$currenttoken" = "axs" ]; then currenttoken_ethereum="0xbb0e17ef65f82ab018d8edd776e8dd940327b28b" currenttoken_polygon="" currenttoken_xdai="" # currenttoken_ronin="0x97a9107c1793bc407d6f527b77e7fff4d812bece" currenttoken_coingeckoname="axie-infinity" echo "Updating AXS token..." fi if [ "$currenttoken" = "usdc" ]; then currenttoken_ethereum="0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" currenttoken_polygon="0x2791bca1f2de4661ed88a30c99a7a9449aa84174" currenttoken_xdai="0xddafbb505ad214d7b80b1f830fccc89b60fb7a83" # currenttoken_ronin="0x0b7007c13325c48911f73a2dad5fa5dcbf808adc" currenttoken_coingeckoname="usd-coin" echo "Updating USDC token..." fi #if [ "$currenttoken_ethereum" != "" ]; then # tokenFULLbalanceeth="$(ethereal token balance --holder=$ethaddress --token=$currenttoken_ethereum)" # tokenbalanceeth="$(printf "%.2f\n" $(echo "$tokenFULLbalanceeth" | bc -l))" #fi tokenFULLbalanceeth="$(ethereal token balance --holder=$ethaddress --token=$currenttoken_ethereum)" tokenbalanceeth="$(printf "%.2f\n" $(echo "$tokenFULLbalanceeth" | bc -l))" tokenFULLbalancematic="$(ethereal --connection=$rpc_polygon token balance --holder=$ethaddress --token=$currenttoken_polygon)" tokenbalancematic="$(printf "%.2f\n" $(echo "$tokenFULLbalancematic" | bc -l))" tokenFULLbalancexdai="$(ethereal --connection=$rpc_xdai token balance --holder=$ethaddress --token=$currenttoken_xdai)" tokenbalancexdai="$(printf "%.2f\n" $(echo "$tokenFULLbalancexdai" | bc -l))" #tokenFULLbalanceron="$(ethereal --connection=$rpc_ronin token balance --holder=$ethaddress --token=$currenttoken_ronin)" #tokenbalanceron="$(printf "%.2f\n" $(echo "$tokenFULLbalanceron" | bc -l))" tokentotalbalance=$(echo "$tokenbalanceeth + $tokenbalancematic + $tokenbalancexdai"|bc) tokenUSDtotalbalanceget="$(curl -s "https://api.coingecko.com/api/v3/simple/price?ids=$currenttoken_coingeckoname&vs_currencies=usd" | jq -r ".\"$currenttoken_coingeckoname\".usd")" tokenUSDtotalbalance=$(echo "$tokentotalbalance * $tokenUSDtotalbalanceget"|bc) #echo "USD: $tokenUSDtotalbalance. Used: $tokentotalbalance and $tokenUSDtotalbalanceget" } currenttoken="eth" processtoken #- ethbalanceprepare="$(ethereal ether balance --address=$ethaddress)" ethbalance="$(echo "$ethbalanceprepare" | sed 's/ Ether//g')" # https://askubuntu.com/a/1007368/1255788 contents="$(jq ".eth.ethereum = \"$ethbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json #- contents="$(jq ".eth.polygon = \"$tokenbalancematic\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".eth.xdai = \"$tokenbalancexdai\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json #- tokentotalbalance=$(echo "$ethbalance + $tokenbalancematic + $tokenbalancexdai"|bc) tokenUSDtotalbalance=$(echo "$tokentotalbalance * $tokenUSDtotalbalanceget"|bc) #- contents="$(jq ".eth.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".eth.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json currenttoken="pla" processtoken contents="$(jq ".pla.polygon = \"$tokenbalancematic\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".pla.xdai = \"$tokenbalancexdai\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".pla.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".pla.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json currenttoken="game" processtoken contents="$(jq ".game.polygon = \"$tokenbalancematic\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".game.xdai = \"$tokenbalancexdai\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".game.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".game.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json currenttoken="mana" processtoken contents="$(jq ".mana.ethereum = \"$tokenbalanceeth\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".mana.polygon = \"$tokenbalancematic\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".mana.xdai = \"$tokenbalancexdai\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".mana.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".mana.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json currenttoken="sand" processtoken contents="$(jq ".sand.ethereum = \"$tokenbalanceeth\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".sand.polygon = \"$tokenbalancematic\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".sand.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".sand.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json currenttoken="dai" processtoken contents="$(jq ".dai.ethereum = \"$tokenbalanceeth\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".dai.polygon = \"$tokenbalancematic\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json #- daibalanceprepare="$(ethereal --connection=$rpc_xdai ether balance --address=$ethaddress)" daibalance="$(echo "$daibalanceprepare" | sed 's/ Ether//g')" contents="$(jq ".dai.xdai = \"$daibalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json tokentotalbalance=$(echo "$tokenbalanceeth + $tokenbalancematic + $daibalance"|bc) tokenUSDtotalbalance=$(echo "$tokentotalbalance * $tokenUSDtotalbalanceget"|bc) #- contents="$(jq ".dai.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".dai.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json currenttoken="gno" processtoken contents="$(jq ".gno.ethereum = \"$tokenbalanceeth\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".gno.polygon = \"$tokenbalancematic\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".gno.xdai = \"$tokenbalancexdai\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".gno.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".gno.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json currenttoken="matic" processtoken contents="$(jq ".matic.ethereum = \"$tokenbalanceeth\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json #- maticbalanceprepare="$(ethereal --connection=$rpc_polygon ether balance --address=$ethaddress)" maticbalance="$(echo "$maticbalanceprepare" | sed 's/ Ether//g')" contents="$(jq ".matic.polygon = \"$maticbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json #- contents="$(jq ".matic.xdai = \"$tokenbalancexdai\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json #- tokentotalbalance=$(echo "$tokenbalanceeth + $maticbalance + $tokenbalancexdai"|bc) tokenUSDtotalbalance=$(echo "$tokentotalbalance * $tokenUSDtotalbalanceget"|bc) #- contents="$(jq ".matic.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".matic.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json currenttoken="slp" processtoken contents="$(jq ".slp.ethereum = \"$tokenbalanceeth\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".slp.polygon = \"$tokenbalancematic\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".slp.xdai = \"$tokenbalancexdai\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json #contents="$(jq ".slp.ronin = \"$tokenbalanceronin\"" /1/config/tokens.json)" && \ #echo "${contents}" > /1/config/tokens.json contents="$(jq ".slp.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".slp.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json currenttoken="axs" processtoken contents="$(jq ".axs.ethereum = \"$tokenbalanceeth\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".axs.polygon = \"$tokenbalancematic\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".axs.xdai = \"$tokenbalancexdai\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json #contents="$(jq ".axs.ronin = \"$tokenbalanceronin\"" /1/config/tokens.json)" && \ #echo "${contents}" > /1/config/tokens.json contents="$(jq ".axs.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".axs.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json currenttoken="usdc" processtoken contents="$(jq ".usdc.ethereum = \"$tokenbalanceeth\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".usdc.polygon = \"$tokenbalancematic\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".usdc.xdai = \"$tokenbalancexdai\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json #contents="$(jq ".usdc.ronin = \"$tokenbalanceronin\"" /1/config/tokens.json)" && \ #echo "${contents}" > /1/config/tokens.json contents="$(jq ".usdc.total = \"$tokentotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json contents="$(jq ".usdc.totalusd = \"$tokenUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json tmp1="$(jq -r '.flof.totalusd' /1/config/tokens.json)" tmp2="$(jq -r '.eth.totalusd' /1/config/tokens.json)" tmp3="$(jq -r '.pla.totalusd' /1/config/tokens.json)" tmp4="$(jq -r '.game.totalusd' /1/config/tokens.json)" tmp5="$(jq -r '.mana.totalusd' /1/config/tokens.json)" tmp6="$(jq -r '.sand.totalusd' /1/config/tokens.json)" tmp7="$(jq -r '.dai.totalusd' /1/config/tokens.json)" tmp8="$(jq -r '.gno.totalusd' /1/config/tokens.json)" tmp9="$(jq -r '.matic.totalusd' /1/config/tokens.json)" tmp10="$(jq -r '.slp.totalusd' /1/config/tokens.json)" tmp11="$(jq -r '.axs.totalusd' /1/config/tokens.json)" tmp12="$(jq -r '.usdc.totalusd' /1/config/tokens.json)" alltokensUSDtotalbalance=$(echo "$tmp1 + $tmp2 + $tmp3 + $tmp4 + $tmp5 + $tmp6 + $tmp7 + $tmp8 + $tmp9 + $tmp10 + $tmp11 + $tmp12"|bc) contents="$(jq ".usd.total = \"$alltokensUSDtotalbalance\"" /1/config/tokens.json)" && \ echo "${contents}" > /1/config/tokens.json --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/tokenbalance-others.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/test.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e localcurrency="brl" #usdlocal_rates="$(curl -s "https://api.coingecko.com/api/v3/simple/price?ids=dai&vs_currencies=$localcurrency" | jq -r '.dai.$localcurrency')" usdlocal_ratestmp="$(curl -s "https://api.coingecko.com/api/v3/simple/price?ids=dai&vs_currencies=$localcurrency")" usdlocal_rates="$(echo "$usdlocal_ratestmp" | jq -r ".dai.$localcurrency")" totalbalance_usd="1000" totalbalance_local=$(echo "$totalbalance_usd * $usdlocal_rates"|bc) echo "Total BRL: $totalbalance_local" --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/test.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/personalization-update.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e background=$(gsettings get org.cinnamon.desktop.background picture-uri | tr -d "'") cat > /1/config/personalization.json << ENDOFFILE { "background": "" } ENDOFFILE contents="$(jq ".background = \"$background\"" /1/config/personalization.json)" && \ echo "${contents}" > /1/config/personalization.json --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/personalization-update.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/fullname.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/sh echo "Getting user's full name..." user_name="$(logname)" user_record="$(getent passwd $user_name)" user_gecos_field="$(echo "$user_record" | cut -d ':' -f 5)" user_full_name="$(echo "$user_gecos_field" | cut -d ',' -f 1)" #echo "$user_full_name" # https://stackoverflow.com/a/833256/5623661 (sorry for crediting the answer from someone who say "hysterical") echo "It is: $user_full_name" if [ "$(jq -r '.fullname' /1/config/user.json)" = "null" ]; then echo "Its your first time using fullname.sh!" echo "Initializing..." tmp="$(mktemp)"; cat /1/config/user.json | jq '. + {fullname: ""}' >"$tmp" && mv "$tmp" /1/config/user.json fi contents="$(jq ".fullname = \"$user_full_name\"" /1/config/user.json)" && \ echo "${contents}" > /1/config/user.json if [ "$(jq -r '.fullname' /1/config/user.json)" != "null" ]; then if [ "$(jq -r '.fullname' /1/config/user.json)" = "$user_full_name" ]; then echo "Done!" fi fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/fullname.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/ethaddress-sybil_verify.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/sh if [ "$(jq -r '.sybiltwitter' /1/config/user.json)" = "null" ]; then echo "Its your first time using 'ethaddress-sybil_verify'!" echo "Initializing..." #cat /1/config/user.json | jq '. + {"sybiltwitter": ""}' | tee /1/config/user.json tmp="$(mktemp)"; cat /1/config/user.json | jq '. + {sybiltwitter: ""}' >"$tmp" && mv "$tmp" /1/config/user.json fi letsgo () { ethaddress="$(jq -r '.eth' /1/config/user.json)" twitterprofile="$(curl -s "https://raw.githubusercontent.com/Uniswap/sybil-list/master/verified.json" | jq -r ".\"$ethaddress\".twitter.handle")" if [ "$twitterprofile" = "null" ]; then contents="$(jq '.sybiltwitter = "no"' /1/config/user.json)" && \ echo "${contents}" > /1/config/user.json echo "⚠ Account $ethaddress have no verified Twitter profile at Sybil.org" echo "You can verify your ETH address with your Twitter account, here: https://sybil.org/#/delegates/uniswap" else contents="$(jq ".sybiltwitter = \"$twitterprofile\"" /1/config/user.json)" && \ echo "${contents}" > /1/config/user.json echo "✅ $ethaddress's verified Twitter profile at Sybil.org is:" echo "$twitterprofile" fi } if online -s; then letsgo; else echo "📶❌ Cannot verify Twitter profile. Your device is offline."; fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/ethaddress-sybil_verify.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/ensname.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/sh echo "Getting user's ENS name..." ethaddress="$(jq -r '.eth' /1/config/user.json)" ensname="$(ethereal ens domain get --address=$ethaddress)" echo "It is: $ethaddress" if [ "$(jq -r '.ens' /1/config/user.json)" = "null" ]; then echo "Its your first time using ensname.sh!" echo "Initializing..." tmp="$(mktemp)"; cat /1/config/user.json | jq '. + {ens: ""}' >"$tmp" && mv "$tmp" /1/config/user.json fi contents="$(jq ".ens = \"$ensname\"" /1/config/user.json)" && \ echo "${contents}" > /1/config/user.json if [ "$(jq -r '.ens' /1/config/user.json)" != "null" ]; then if [ "$(jq -r '.ens' /1/config/user.json)" = "$ensname" ]; then echo "Done!" fi fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/ensname.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/bashc2-communication_ethgas.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e if [ ! -f /tmp/bashc2-communication_ethgas.json ]; then echo "Starting bashc2-communication_ethgas.sh..." cat > /tmp/bashc2-communication_ethgas.json << ENDOFFILE { "ethgas_gasno": "", "ethgas_icon": "", "ethgas_oneline": "" } ENDOFFILE fi ethgas_gasno="$(ethgas gasno)" contents="$(jq ".ethgas_gasno = \"$ethgas_gasno\"" /tmp/bashc2-communication_ethgas.json)" && \ echo "${contents}" > /tmp/bashc2-communication_ethgas.json ethgas_icon="$(ethgas icon)" contents="$(jq ".ethgas_icon = \"$ethgas_icon\"" /tmp/bashc2-communication_ethgas.json)" && \ echo "${contents}" > /tmp/bashc2-communication_ethgas.json ethgas_oneline="$(ethgas oneline)" contents="$(jq ".ethgas_oneline = \"$ethgas_oneline\"" /tmp/bashc2-communication_ethgas.json)" && \ echo "${contents}" > /tmp/bashc2-communication_ethgas.json --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/bashc2-communication_ethgas.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/nfts-parse.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e ethaddress="$(jq -r '.eth' /1/config/user.json)" rpc_polygon="https://rpc-mainnet.maticvigil.com/" rpc_xdai="https://rpc.gnosischain.com/" if [ "$(jq -r '.danimesqart' /1/config/nfts.json)" = "null" ] || [ "$(jq -r '.danimesqart' /1/config/nfts.json)" = "" ]; then echo "Its your first time using nfts-parse.sh!" echo "Initializing..." cat > /1/config/nfts.json << ENDOFFILE { "danimesqart": { "balance": "", "items": [{}] } } ENDOFFILE fi if [ "$(jq -r '.expansionpunks' /1/config/nfts.json)" = "null" ]; then echo "Initializing for ExpansionPunks NFT..." #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '. + "x":{"1":[{"balance":"","metadata":"","name":"","description":"","image":""}]}' >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp0="$(mktemp)"; cat /1/config/nfts.json | jq '. + "x":{"1":[{"balance":"","metadata":"","name":"","description":"","image":""}]}' >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '. + "x":{"1":[{"balance":"","metadata":"","name":"","description":"","image":""}]}' >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '. + {"x":{"1":[{"balance":"","metadata":"","name":"","description":"","image":""}]}' >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '. + {"x":{"1":[{"balance":"","metadata":"","name":"","description":"","image":""}]}}' >"$tmp" && mv "$tmp" /1/config/nfts.json tmp="$(mktemp)"; cat /1/config/nfts.json | jq '. + {"expansionpunks":{"balance":"","items": [{}]}}' >"$tmp" && mv "$tmp" /1/config/nfts.json fi if [ "$(jq -r '.axiepet' /1/config/nfts.json)" = "null" ]; then echo "Initializing for Axie pet NFT..." tmp="$(mktemp)"; cat /1/config/nfts.json | jq '. + {"axiepet":{"balance":"","items": [{}]}}' >"$tmp" && mv "$tmp" /1/config/nfts.json fi if [ "$(jq -r '.rockstarsofepns' /1/config/nfts.json)" = "null" ]; then echo "Initializing for Rockstars of EPNS NFT..." tmp="$(mktemp)"; cat /1/config/nfts.json | jq '. + {"rockstarsofepns":{"balance":"","items": [{}]}}' >"$tmp" && mv "$tmp" /1/config/nfts.json fi if [ "$(jq -r '.poap' /1/config/nfts.json)" = "null" ]; then echo "Initializing for Proof of Attendance (PoAP) badges NFT..." tmp="$(mktemp)"; cat /1/config/nfts.json | jq '. + {"poap":{"balance":"","items": [{}]}}' >"$tmp" && mv "$tmp" /1/config/nfts.json fi if [ "$(jq -r '.ens' /1/config/nfts.json)" = "null" ]; then echo "Initializing for ENS domains NFT..." tmp="$(mktemp)"; cat /1/config/nfts.json | jq '. + {"ens":{"balance":"","items": [{}]}}' >"$tmp" && mv "$tmp" /1/config/nfts.json fi if [ "$(jq -r '.cryptokitties' /1/config/nfts.json)" = "null" ]; then echo "Initializing for CryptoKitties NFT..." tmp="$(mktemp)"; cat /1/config/nfts.json | jq '. + {"cryptokitties":{"balance":"","items": [{}]}}' >"$tmp" && mv "$tmp" /1/config/nfts.json fi processbalances () { if [ "$currentnft" = "danimesqart" ]; then currentnft_ethereum="0x1b6b3026B7F5531086f3B8e6CC31C6564BBE2849" currentnft_polygon="" currentnft_xdai="" currentnft_abi="universal-abi.json" echo "Updating Daniell Mesquita's Arts NFT..." fi if [ "$currentnft" = "expansionpunks" ]; then currentnft_ethereum="0x0d0167a823c6619d430b1a96ad85b888bcf97c37" currentnft_polygon="" currentnft_xdai="" currentnft_abi="universal-abi.json" echo "Updating ExpansionPunks NFT..." fi if [ "$currentnft" = "axiepet" ]; then currentnft_ethereum="0xf5b0a3efb8e8e4c201e2a935f110eaaf3ffecb8d" currentnft_polygon="" currentnft_xdai="" currentnft_abi="abi-axie.json" echo "Updating Axie pet NFT..." fi if [ "$currentnft" = "rockstarsofepns" ]; then currentnft_ethereum="0x3f8C2152b79276b78315CAF66cCF951780580A8a" currentnft_polygon="" currentnft_xdai="" currentnft_abi="abi-rockstars_of_epns.json" echo "Updating Rockstars of EPNS NFT..." fi if [ "$currentnft" = "poap" ]; then currentnft_ethereum="" currentnft_polygon="" currentnft_xdai="0x22C1f6050E56d2876009903609a2cC3fEf83B415" currentnft_abi="universal-abi.json" echo "Updating Proof of Attendance (PoAP) badges NFT..." fi if [ "$currentnft" = "ens" ]; then currentnft_ethereum="0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85" currentnft_polygon="" currentnft_xdai="" currentnft_abi="universal-abi.json" echo "Updating ENS domains NFT..." fi if [ "$currentnft" = "cryptokitties" ]; then currentnft_ethereum="0x06012c8cf97bead5deae237070f9587f8e7a266d" currentnft_polygon="" currentnft_xdai="" currentnft_abi="universal-abi.json" echo "Updating CryptoKitties NFT..." fi if [ "$currentnft_ethereum" != "" ]; then nftFULLbalanceeth="$(ethereal contract call --contract=$currentnft_ethereum --abi=abis/$currentnft_abi --call="balanceOf($ethaddress)" --from=$ethaddress)" #nftbalanceethprepare="$(printf "%.2f\n" $(echo "$nftFULLbalanceeth" | bc -l))" #nftbalanceeth="$(echo "$nftbalanceethprepare" | tr -d "[" | tr -d "]")" nftbalanceeth="$(echo "$nftFULLbalanceeth" | tr -d "[" | tr -d "]")" echo "Balance: $nftbalanceeth" else if [ "$currentnft_polygon" != "" ]; then nftFULLbalancematic="$(ethereal --connection=$rpc_polygon contract call --contract=$currentnft_polygon --abi=abis/$currentnft_abi --call="balanceOf($ethaddress)" --from=$ethaddress)" #nftbalancematicprepare="$(printf "%.2f\n" $(echo "$nftFULLbalancematic" | bc -l))" #nftbalancematic="$(echo "$nftbalancematicprepare" | tr -d "[" | tr -d "]")" nftbalancematic="$(echo "$nftFULLbalancematic" | tr -d "[" | tr -d "]")" echo "Balance: $nftbalancematic" fi if [ "$currentnft_xdai" != "" ]; then nftFULLbalancexdai="$(ethereal --connection=$rpc_xdai contract call --contract=$currentnft_xdai --abi=abis/$currentnft_abi --call="balanceOf($ethaddress)" --from=$ethaddress)" #nftbalancexdaiprepare="$(printf "%.2f\n" $(echo "$nftFULLbalancexdai" | bc -l))" #nftbalancexdai="$(echo "$nftbalancexdaiprepare" | tr -d "[" | tr -d "]")" nftbalancexdai="$(echo "$nftFULLbalancexdai" | tr -d "[" | tr -d "]")" echo "Balance: $nftbalancexdai" fi fi #nfttotalbalance=$(echo "$nftbalanceeth + $nftbalancematic + $nftbalancexdai"|bc) #echo "total bal: $nfttotalbalance" } currentnft="danimesqart" processbalances contents="$(jq ".danimesqart.balance = \"$nftbalanceeth\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json currentnft="expansionpunks" processbalances contents="$(jq ".expansionpunks.balance = \"$nftbalanceeth\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json currentnft="axiepet" processbalances contents="$(jq ".axiepet.balance = \"$nftbalanceeth\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json currentnft="rockstarsofepns" processbalances contents="$(jq ".rockstarsofepns.balance = \"$nftbalanceeth\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json currentnft="poap" processbalances contents="$(jq ".poap.balance = \"$nftbalancexdai\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json currentnft="ens" processbalances contents="$(jq ".ens.balance = \"$nftbalanceeth\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json currentnft="cryptokitties" processbalances contents="$(jq ".cryptokitties.balance = \"$nftbalanceeth\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json #---- process_individual_nfts () { if [ "$currentnft" = "danimesqart" ]; then currentnft_ethereum="0x1b6b3026B7F5531086f3B8e6CC31C6564BBE2849" currentnft_polygon="" currentnft_xdai="" currentnft_abi="universal-abi.json" echo "Updating Daniell Mesquita's Arts NFT..." fi if [ "$currentnft" = "expansionpunks" ]; then currentnft_ethereum="0x0d0167a823c6619d430b1a96ad85b888bcf97c37" currentnft_polygon="" currentnft_xdai="" currentnft_abi="universal-abi.json" echo "Updating ExpansionPunks NFT..." fi if [ "$currentnft" = "axiepet" ]; then currentnft_ethereum="0xf5b0a3efb8e8e4c201e2a935f110eaaf3ffecb8d" currentnft_polygon="" currentnft_xdai="" currentnft_abi="abi-axie.json" echo "Updating Axie pet NFT..." fi if [ "$currentnft" = "rockstarsofepns" ]; then currentnft_ethereum="0x3f8C2152b79276b78315CAF66cCF951780580A8a" currentnft_polygon="" currentnft_xdai="" currentnft_abi="abi-rockstars_of_epns.json" echo "Updating Rockstars of EPNS NFT..." fi if [ "$currentnft" = "poap" ]; then currentnft_ethereum="" currentnft_polygon="" currentnft_xdai="0x22C1f6050E56d2876009903609a2cC3fEf83B415" currentnft_abi="universal-abi.json" echo "Updating Proof of Attendance (PoAP) badges NFT..." fi if [ "$currentnft" = "ens" ]; then currentnft_ethereum="0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85" currentnft_polygon="" currentnft_xdai="" currentnft_abi="universal-abi.json" echo "Updating ENS domains NFT..." fi if [ "$currentnft" = "cryptokitties" ]; then currentnft_ethereum="0x06012c8cf97bead5deae237070f9587f8e7a266d" currentnft_polygon="" currentnft_xdai="" currentnft_abi="universal-abi.json" echo "Updating CryptoKitties NFT..." fi if [ "$currentnft_ethereum" != "" ]; then nftIDprepare="$(ethereal contract call --contract=$currentnft_ethereum --abi=abis/$currentnft_abi --call="tokenOfOwnerByIndex($ethaddress,0)" --from=$ethaddress)" echo "first test: $nftIDprepare" loopmile="0" # until [ "$nftFULLbalanceeth" = "Failed to call tokenOfOwnerByIndex: execution reverted" ] || [ "$nftFULLbalanceeth" = "Failed to call tokenOfOwnerByIndex: execution reverted: ERC721Enumerable: owner index out of bounds" ] until [[ "$nftIDprepare" != "["*"]" ]] do echo "Test: $nftIDprepare" loopmile="$(($loopmile + 1))" echo "Current loop: $loopmile" echo "-" ethindex="$(($loopmile - 1))" echo "Current index: $ethindex" echo "-" nftIDprepare="$(ethereal contract call --contract=$currentnft_ethereum --abi=abis/$currentnft_abi --call="tokenOfOwnerByIndex($ethaddress,$ethindex)" --from=$ethaddress)" nftID="$(echo "$nftIDprepare" | tr -d "[" | tr -d "]")" echo "$nftID" if [[ "$nftIDprepare" = "["*"]" ]]; then #tmp="$(mktemp)"; cat /1/config/nfts.json | jq ".\"$currentnft\" + {\"$loopmile\":[{"id": "","metadata":"","name":"","description":"","image":""}]}" >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq ".\"$currentnft\" + {\"$loopmile\":[{\"id\": \"\",\"metadata\":\"\",\"name\":\"\",\"description\":\"\",\"image\":\"\"}]}" >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '.danimesqart + {"2":[{"id": "","metadata":"","name":"","description":"","image":""}]}' >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '.danimesqart + "2":[{"id": "","metadata":"","name":"","description":"","image":""}]' >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '. + {"danimesqart":{"balance":"","1":[{"id": "","metadata":"","name":"","description":"","image":""}]}}' >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq ". + {"danimesqart":{"balance":"","1":[{"id": "","metadata":"","name":"","description":"","image":""}]}}" >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq ". + {\"danimesqart\":{\"balance\":\"\",\"1\":[{\"id\": \"\",\"metadata\":\"\",\"name\":\"\",\"description\":\"\",\"image\":\"\"}]}}" >"$tmp" && mv "$tmp" /1/config/nfts.json #worked #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '.danimesqart + {"balance":"","1":[{"id": "","metadata":"","name":"","description":"","image":""}]}' >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '.{danimesqart} + {"balance":"","1":[{"id": "","metadata":"","name":"","description":"","image":""}]}' >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '.danimesqart + {"1":[{"id": "","metadata":"","name":"","description":"","image":""}]}' >"$tmp" && mv "$tmp" /1/config/nfts.json #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '.danimesqart += {other_key: "new_val"}' >"$tmp" && mv "$tmp" /1/config/nfts.json #worked, thanks to https://gist.github.com/joar/776b7d176196592ed5d8?permalink_comment_id=3185021#gistcomment-3185021 #tmp="$(mktemp)"; cat /1/config/nfts.json | jq '.danimesqart += {"2":[{"id": "","metadata":"","name":"","description":"","image":""}]}' >"$tmp" && mv "$tmp" /1/config/nfts.json #worked #tmp="$(mktemp)"; cat /1/config/nfts.json | jq ".danimesqart += {\"2\":[{\"id\": \"\",\"metadata\":\"\",\"name\":\"\",\"description\":\"\",\"image\":\"\"}]}" >"$tmp" && mv "$tmp" /1/config/nfts.json #worked #tmp="$(mktemp)"; cat /1/config/nfts.json | jq ".\"$currentnft\" += {\"2\":[{\"id\": \"\",\"metadata\":\"\",\"name\":\"\",\"description\":\"\",\"image\":\"\"}]}" >"$tmp" && mv "$tmp" /1/config/nfts.json #worked #tmp="$(mktemp)"; cat /1/config/nfts.json | jq ".\"$currentnft\" += {\"$loopmile\":[{\"id\": \"\",\"metadata\":\"\",\"name\":\"\",\"description\":\"\",\"image\":\"\"}]}" >"$tmp" && mv "$tmp" /1/config/nfts.json #worked, but I'll now insert items into a "items" array tmp="$(mktemp)"; cat /1/config/nfts.json | jq ".\"$currentnft\".items[] += {\"$loopmile\":[{\"id\": \"\",\"metadata\":\"\",\"name\":\"\",\"description\":\"\",\"image\":\"\",\"blockchain\":\"\"}]}" >"$tmp" && mv "$tmp" /1/config/nfts.json #contents="$(jq ".\"$currentnft\".\"$loopmile\"[].id = \"$nftID\"" /1/config/nfts.json)" && \ contents="$(jq ".\"$currentnft\".items[].\"$loopmile\"[].id = \"$nftID\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json contents="$(jq ".\"$currentnft\".items[].\"$loopmile\"[].blockchain = \"1\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json fi done loopmile="0" else if [ "$currentnft_polygon" != "" ]; then nftIDprepare="$(ethereal --connection=$rpc_polygon contract call --contract=$currentnft_polygon --abi=abis/$currentnft_abi --call="tokenOfOwnerByIndex($ethaddress,0)" --from=$ethaddress)" echo "first test: $nftIDprepare" loopmile="0" until [[ "$nftIDprepare" != "["*"]" ]] do echo "Test: $nftIDprepare" loopmile="$(($loopmile + 1))" echo "Current loop: $loopmile" echo "-" ethindex="$(($loopmile - 1))" echo "Current index: $ethindex" echo "-" nftIDprepare="$(ethereal --connection=$rpc_polygon contract call --contract=$currentnft_polygon --abi=abis/$currentnft_abi --call="tokenOfOwnerByIndex($ethaddress,$ethindex)" --from=$ethaddress)" nftID="$(echo "$nftIDprepare" | tr -d "[" | tr -d "]")" echo "$nftID" if [[ "$nftIDprepare" = "["*"]" ]]; then tmp="$(mktemp)"; cat /1/config/nfts.json | jq ".\"$currentnft\".items[] += {\"$loopmile\":[{\"id\": \"\",\"metadata\":\"\",\"name\":\"\",\"description\":\"\",\"image\":\"\",\"blockchain\":\"\"}]}" >"$tmp" && mv "$tmp" /1/config/nfts.json contents="$(jq ".\"$currentnft\".items[].\"$loopmile\"[].id = \"$nftID\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json contents="$(jq ".\"$currentnft\".items[].\"$loopmile\"[].blockchain = \"137\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json fi done loopmile="0" fi if [ "$currentnft_xdai" != "" ]; then nftIDprepare="$(ethereal --connection=$rpc_xdai contract call --contract=$currentnft_xdai --abi=abis/$currentnft_abi --call="tokenOfOwnerByIndex($ethaddress,0)" --from=$ethaddress)" echo "first test: $nftIDprepare" loopmile="0" until [[ "$nftIDprepare" != "["*"]" ]] do echo "Test: $nftIDprepare" loopmile="$(($loopmile + 1))" echo "Current loop: $loopmile" echo "-" ethindex="$(($loopmile - 1))" echo "Current index: $ethindex" echo "-" nftIDprepare="$(ethereal --connection=$rpc_xdai contract call --contract=$currentnft_xdai --abi=abis/$currentnft_abi --call="tokenOfOwnerByIndex($ethaddress,$ethindex)" --from=$ethaddress)" nftID="$(echo "$nftIDprepare" | tr -d "[" | tr -d "]")" echo "$nftID" if [[ "$nftIDprepare" = "["*"]" ]]; then tmp="$(mktemp)"; cat /1/config/nfts.json | jq ".\"$currentnft\".items[] += {\"$loopmile\":[{\"id\": \"\",\"metadata\":\"\",\"name\":\"\",\"description\":\"\",\"image\":\"\",\"blockchain\":\"\"}]}" >"$tmp" && mv "$tmp" /1/config/nfts.json contents="$(jq ".\"$currentnft\".items[].\"$loopmile\"[].id = \"$nftID\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json contents="$(jq ".\"$currentnft\".items[].\"$loopmile\"[].blockchain = \"100\"" /1/config/nfts.json)" && \ echo "${contents}" > /1/config/nfts.json fi done loopmile="0" fi fi } currentnft="danimesqart" process_individual_nfts #contents="$(jq ".danimesqart.\"1\"[].balance = \"$nftbalanceeth\"" /1/config/nfts.json)" && \ #echo "${contents}" > /1/config/nfts.json currentnft="expansionpunks" process_individual_nfts currentnft="axiepet" process_individual_nfts currentnft="rockstarsofepns" process_individual_nfts currentnft="poap" process_individual_nfts currentnft="ens" process_individual_nfts currentnft="cryptokitties" process_individual_nfts --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/scripts/nfts-parse.sh ---------------------------------------------------------------------------------------------------------------------------
in reply to: 0xf2136f14dfc53e1d8d4efed53147012dfa6b86e952fb8dd39248944d50c5de72. --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Event sheets/Common sheet.uistate.xml ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2uistate> <!--This is a UI state file - its content describes the user interface settings when the event sheet was last open. It is entirely optional and the project will load without it. If you are placing the project under source control, you probably do not want to add any .uistate.xml files to the repository.--> <show-addaction-links>1</show-addaction-links> <scroll-pos>0</scroll-pos> <conditions-column>120</conditions-column> <actions-namecolumn>21</actions-namecolumn> <condition-namecolumns> <nest>20</nest> <nest>17</nest> </condition-namecolumns> <events /> </c2uistate> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Event sheets/Common sheet.uistate.xml --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Event sheets/Common sheet.xml ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2eventsheet> <!--All the 'name' attributes are ignored by Construct 2 - they are there for readability only.--> <name>Common sheet</name> <events> <comment>Defines if fullscreen is active or else.</comment> <variable constant="0" name="Fullscreen" sid="572591868848104" static="0" type="number">0</variable> <event-group description="" sid="441320609743452" title="Keyboard shortcuts"> <sub-events> <event-group description="" sid="575669606180813" title="F12"> <sub-events> <event-block sid="200627883859697"> <conditions> <condition id="21" name="On shortcut" sid="639114437472601" type="Electron"> <param id="0" name="Tag">&quot;fullscreen&quot;</param> </condition> </conditions> <actions /> <sub-events> <comment>If not in fullscreen, toggles fullscreen and marks it as enabled.</comment> <event-block sid="246504516252417"> <conditions> <condition id="-14" name="Compare variable" sid="173532915668347" type="System"> <param id="0" name="Variable">Fullscreen</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">0</param> </condition> </conditions> <actions> <action id="8" name="Set Fullscreen" sid="414535240125850" type="Electron"> <param id="0" name="State">0</param> </action> <action id="-16" name="Wait" sid="852842611417701" type="System"> <param id="0" name="Seconds">0.1</param> </action> <action id="-9" name="Set value" sid="262242615174513" type="System"> <param id="0" name="Variable">Fullscreen</param> <param id="1" name="Value">1</param> </action> </actions> </event-block> <comment>If already in fullscreen, toggles fullscreen and marks it as disabled.</comment> <event-block sid="150086771699419"> <conditions> <condition id="-14" name="Compare variable" sid="257522299584163" type="System"> <param id="0" name="Variable">Fullscreen</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">1</param> </condition> </conditions> <actions> <action id="8" name="Set Fullscreen" sid="801990145373915" type="Electron"> <param id="0" name="State">1</param> </action> <action id="-16" name="Wait" sid="234349397211819" type="System"> <param id="0" name="Seconds">0.1</param> </action> <action id="-9" name="Set value" sid="138422859297024" type="System"> <param id="0" name="Variable">Fullscreen</param> <param id="1" name="Value">0</param> </action> </actions> </event-block> </sub-events> </event-block> </sub-events> </event-group> <event-group description="" sid="739508802732847" title="ESC"> <sub-events> <event-block sid="601297250886440"> <conditions> <condition id="21" name="On shortcut" sid="609930145411392" type="Electron"> <param id="0" name="Tag">&quot;close&quot;</param> </condition> </conditions> <actions> <action id="1" name="Exit" sid="502459066795434" type="Electron" /> </actions> </event-block> </sub-events> </event-group> </sub-events> </event-group> </events> </c2eventsheet> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Event sheets/Common sheet.xml --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Event sheets/Splash sheet.uistate.xml ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2uistate> <!--This is a UI state file - its content describes the user interface settings when the event sheet was last open. It is entirely optional and the project will load without it. If you are placing the project under source control, you probably do not want to add any .uistate.xml files to the repository.--> <show-addaction-links>1</show-addaction-links> <scroll-pos>0</scroll-pos> <conditions-column>120</conditions-column> <actions-namecolumn>21</actions-namecolumn> <condition-namecolumns> <nest>20</nest> <nest>17</nest> </condition-namecolumns> <events /> </c2uistate> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Event sheets/Splash sheet.uistate.xml --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Event sheets/Splash sheet.xml ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2eventsheet> <!--All the 'name' attributes are ignored by Construct 2 - they are there for readability only.--> <name>Splash sheet</name> <events> <include>Common sheet</include> <comment>On start of layout, set window title to Eventlr.</comment> <event-block sid="251917746078790"> <conditions> <condition id="-2" name="On start of layout" sid="528172336526441" type="System" /> </conditions> <actions> <action id="29" name="Set Size" sid="907479543539449" type="Electron"> <param id="0" name="Width">400</param> <param id="1" name="Height">300</param> <param id="2" name="Animated">1</param> </action> <action id="30" name="Set title" sid="118451295452074" type="Electron"> <param id="0" name="Title">&quot;Floflis Central | Loading...&quot;</param> </action> <action id="19" name="Include Javascript file" sid="715117151730533" type="UI"> <param id="0" name="Javascript file">&quot;jquery.min.js&quot;</param> </action> <action id="19" name="Include Javascript file" sid="335393644757179" type="Splash"> <param id="0" name="Javascript file">&quot;script.js&quot;</param> </action> <action id="2" name="Import CSS file" sid="943033873081196" type="Splash"> <param id="0" name="CSS file">&quot;style.css&quot;</param> </action> <action disabled="1" id="2" name="Import CSS file" sid="996963830421965" type="Splash"> <param id="0" name="CSS file">&quot;dark-common.css&quot;</param> </action> <action id="2" name="Import CSS file" sid="915354609713368" type="Splash"> <param id="0" name="CSS file">&quot;robotofont.css&quot;</param> </action> <action id="45" name="Register a shortcut" sid="470136238014674" type="Electron"> <param id="0" name="Accelerator">&quot;F11&quot;</param> <param id="1" name="Tag">&quot;fullscreen&quot;</param> </action> <action id="45" name="Register a shortcut" sid="529915642542751" type="Electron"> <param id="0" name="Accelerator">&quot;ESC&quot;</param> <param id="1" name="Tag">&quot;close&quot;</param> </action> </actions> </event-block> <comment>On completed loading, go to App layout.</comment> <event-block sid="875769125712946"> <conditions> <condition id="-25" name="On loader layout complete" sid="347662910476287" type="System" /> </conditions> <actions> <action id="14" name="Log" sid="664074888471585" type="Browser"> <param id="0" name="Type">0</param> <param id="1" name="Message">&quot;Exited Splashscreen, going to App screen&quot;</param> </action> <action id="-2" name="Go to layout" sid="618180607257783" type="System"> <param id="0" name="Layout">App</param> </action> </actions> </event-block> </events> </c2eventsheet> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Event sheets/Splash sheet.xml --------------------------------------------------------------------------------------------------------------------------- https://github.com/Floflis/Floflis-Central_HTML.git --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/app.html ----> --------------------------------------------------------------------------------------------------------------------------- <div id="app"> <tag id="dark"></tag> <header class="navbar navbar-dark navbar-full bg-primary doc-navbar-permanent-clipped" style=" user-select: none; -webkit-app-region: drag;background:#3EB7E5!important"> <span class="navbar-brand"><img width="100px" src="logotype_smallball.png" style="margin-right:5px"/> Central</span> <tag id="ethgasheaderbadge"></tag> </header> <div class="content"> <article> <div aria-hidden="true" class="navdrawer navdrawer-permanent navdrawer-permanent-clipped" id="navdrawerPermanentClipped" tabindex="-1"> <div class="navdrawer-content"> <nav class="nav navdrawer-nav"> <ul style="display:block!important" class="nav nav-tabs" id="nav-tab" role="tablist"> <li class="nav-item"><a onclick=C2('home'); class="nav-link active" id="nav-home-tab" data-toggle="tab" href="#nav-home" role="tab" aria-controls="nav-home" aria-selected="true"><i class="material-icons">home</i> Home</a></li> <li class="nav-item"><a onclick=C2('profile'); class="nav-link" id="nav-profile-tab" data-toggle="tab" href="#nav-profile" role="tab" aria-controls="nav-profile" aria-selected="false"><i class="material-icons">account_circle</i> Profile</a></li> <li class="nav-item"><a onclick=C2('playwith'); class="nav-link" id="nav-playwith-tab" data-toggle="tab" href="#nav-playwith" role="tab" aria-controls="nav-playwith" aria-selected="false"><i class="material-icons">playlist_play</i> Play with</a></li> <li class="nav-item"><a onclick=C2('personalization'); class="nav-link" id="nav-personalization-tab" data-toggle="tab" href="#nav-personalization" role="tab" aria-controls="nav-personalization" aria-selected="false"><i class="material-icons">format_paint</i> Personalization</a></li> <li class="nav-item"><a onclick=C2('about'); class="nav-link" id="nav-about-tab" data-toggle="tab" href="#nav-about" role="tab" aria-controls="nav-about" aria-selected="false"><i class="material-icons">perm_device_information</i> About</a></li> <li class="nav-item"><a onclick=C2('moresettings'); class="nav-link" id="nav-moresettings-tab" data-toggle="tab" href="#nav-moresettings" role="tab" aria-controls="nav-moresettings" aria-selected="false"><i class="material-icons">settings</i> More settings</a></li> </ul> </nav> </div> </div> <div style="margin-left:calc(0px + 280px)" class="tab-content" id="nav-tabContent"> <div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab">...</div> <div class="tab-pane fade" id="nav-profile" role="tabpanel" aria-labelledby="nav-profile-tab">...</div> <div class="tab-pane fade" id="nav-playwith" role="tabpanel" aria-labelledby="nav-playwith-tab">...</div> <div class="tab-pane fade" id="nav-personalization" role="tabpanel" aria-labelledby="nav-personalization-tab">...</div> <div class="tab-pane fade" id="nav-about" role="tabpanel" aria-labelledby="nav-about-tab">...</div> <div class="tab-pane fade" id="nav-moresettings" role="tabpanel" aria-labelledby="nav-moresettings-tab">...</div> </div> </article> </div> </div> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/app.html --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/home.html ----> --------------------------------------------------------------------------------------------------------------------------- <div class="alert alert-warning alert-dismissible fade show" role="alert"> <h4 class="alert-heading">Please don't screenshot 📸</h4> <p>🚧 App is under construction 🚧👷‍♀️🏗</p> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="backgroundWrap withImage"> <tag id="getbg-home"></tag> <div class="gradient"></div> </div> <div class="card elevation-24" style="float:right"> <div class="card-body"> <center><tag id="usrpic"></tag> <h5 class="card-title"><tag id="showusername"></tag></h5> <!--<h6 id="hostname" onclick=C2('about-show'); class="card-subtitle mb-2 text-muted linkish" title="Device name">...</h6>--> </center> <style> @keyframes djFCwZ{0%{transform:rotate3d(0,1,0,0);}100%{transform:rotate3d(0,1,0,360deg);}} .balancecount { font-size: 60px; /*display: block;*/ font-weight: bold; color: #000; } </style> <div title="FLOF tokens"> <img class="align-left" src="file:///1/img/token.png" alt="FLOF tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="flofbalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample" title="Balance Breakdown">+</a> <div class="collapse" id="collapseExample"> <div><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your FLOF at Polygon"> Polygon: <span id="flofbalancepolygon"></span> <span>FLOF</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your FLOF at XDai"> XDai: <span id="flofbalancexdai"></span> <span>FLOF</span></p></div> </div> <ul class="list-group list-group-flush"> <!-- SOON SOON SOON SOON SOON <li class="list-group-item"><i class="material-icons">share</i> Peers: <b title="IPFS Web"><img width="16px" src="ipfs.png"/> {peers}</b> <b title="CJDNS Network"><img width="16px" src="cjdns.png"/> {peers}</b> <b title="Yggdrasil Network"><img width="16px" src="yggdrasil.png"/> {peers}</b> (soon)</li> <li class="list-group-item"><i class="material-icons">network_check</i> Network speed: (soon)</li> SOON SOON SOON SOON SOON --> <li onclick=C2('about-show'); class="list-group-item nav-link"><img width="20px" src="/1/img/logo.png"/> Floflis <tag id="version"></tag> build <b id="build">{build}</b> <span id="osarch">...</span></li> </ul> <div class="card-footer text-muted" style="color:#24b92a!important"><center><i class="material-icons">check_circle</i> up-to-date</center></div> <center><h6 id="hostname" onclick=C2('about-show'); class="card-subtitle mb-2 text-muted linkish" title="Device name">...</h6></center> </div> </div> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/home.html --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/playwith.html ----> --------------------------------------------------------------------------------------------------------------------------- <center><img width="150px" title="Play with" src="/1/img/humanrepresentation/look-at-phone.png"/></center> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/hicolor/scalable/apps/minetest.svg" title="Minetest"> <b>Fan of <sub>M1necr4ft</sub></b>? Don't afford to buy or loves open-source? <b>Build/play in 3D</b> with Minetest <button onclick=C2('openminetest'); type="button" class="btn btn-info" style="float:right">Open Minetest</button> </div> </div> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/Yaru/32x32/apps/com.obsproject.Studio.png" title="OBS Studio"> Livestream/record video <button onclick=C2('open-obs'); type="button" class="btn btn-info" style="float:right">Open OBS Studio</button> </div> </div> <div class="card"> <div class="card-body"> 😈🧚<elenao title="B0ls0n4r0">💩</elenao><element title="Felipe Neto">🧗</element>💎 View and copy/paste emojis and special characters <button onclick=C2('opencharacters'); type="button" class="btn btn-info" style="float:right">Open</button> </div> </div> <!--<div class="card"> <div class="card-body"> Explore the new Web <button onclick=C2('opennewbrowser'); type="button" class="btn btn-info" style="float:right">Open Beaker browser</button> </div> </div>--> <!--<div class="card"> <div class="card-body"> Download torrents <button onclick=C2('opentorrent'); type="button" class="btn btn-info" style="float:right">Open BiglyBT</button> </div> </div>--> <!--<div class="card"> <div class="card-body"> Download videos (from YouTube and other sites) <button onclick=C2('openvideodownload'); type="button" class="btn btn-info" style="float:right">Open Video Download</button> </div> </div>--> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/hicolor/scalable/apps/gbrainy.svg" title="gbrainy"> Train your brain <button onclick=C2('opengbrainy'); type="button" class="btn btn-info" style="float:right">Open gbrainy</button> </div> </div> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/hicolor/scalable/apps/supertux2.svg" title="Super Tux 2"> Do you love a game from your old Super N1ntend0 Bros? <button onclick=C2('opentux'); type="button" class="btn btn-info" style="float:right">Open Super Tux</button> </div> </div> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/hicolor/scalable/apps/org.gnome.Games.svg" title="Games"> Play other games, any other <button onclick=C2('opengames'); type="button" class="btn btn-info" style="float:right">Open Games</button> </div> </div> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/Floflis/32x32/apps/gdevelop.png" title="KeePassX"> Do you like game development? Don't know how to program in Notepad? You shouldn't. Even your grandma can develop a game with it. <button onclick=C2('opengdevelop'); type="button" class="btn btn-info" style="float:right">Open GDevelop</button> </div> </div> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/hicolor/scalable/apps/keepassxc.svg" title="KeePassX"> Manage your passwords <button onclick=C2('openpasswords'); type="button" class="btn btn-info" style="float:right">Open KeePassX</button> </div> </div> <!--<div class="card"> <div class="card-body"> Store and send/receive Bitcoin <button onclick=C2('openelecbtc'); type="button" class="btn btn-info" style="float:right">Open Electrum BTC</button> </div> </div>--> <!--<div class="card"> <div class="card-body"> Share/receive files <button onclick=C2('openarbore'); type="button" class="btn btn-info" style="float:right">Open Arbore</button> </div> </div>--> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/hicolor/scalable/apps/audacity.svg" title="Audacity"> Record voice/audio <button onclick=C2('open-aud'); type="button" class="btn btn-info" style="float:right">Open Audacity</button> </div> </div> <!--<div class="card"> <div class="card-body"> Run Windows games <button onclick=C2('openlutris'); type="button" class="btn btn-info" style="float:right">Open</button> </div> </div>--> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/hicolor/32x32/apps/balena-etcher-electron.png" title="Etcher"> Write/Flash ISO images to pendrive <button onclick=C2('openetcher'); type="button" class="btn btn-info" style="float:right">Open Etcher</button> </div> </div> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/hicolor/scalable/apps/org.gnome.DiskUtility.svg" title="Disk Manager"> Partition, format and see details about your disk <button onclick=C2('opendiskmanager'); type="button" class="btn btn-info" style="float:right">Open Disk Manager</button> </div> </div> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/hicolor/scalable/apps/org.gnome.Usage.svg" title="Task Manager"> See and manage all open processes and programs <button onclick=C2('opentaskmanager'); type="button" class="btn btn-info" style="float:right">Open Task Manager</button> </div> </div> <div class="card"> <div class="card-body"> <img width="32px" src="file:///usr/share/icons/Floflis/32x32/apps/terminal.png" title="Neofetch"> Before taking a screen photo... <button onclick="C2('openneofetch');" type="button" class="btn btn-info" style="float:right">Open Neofetch 🤓</button> </div> </div> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/playwith.html --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/personalization.html ----> --------------------------------------------------------------------------------------------------------------------------- <ul class="nav nav-justified nav-tabs" id="justifiedTab" role="tablist"> <li class="nav-item"> <a aria-controls="chbackground" aria-selected="true" class="nav-link active" data-toggle="tab" href="#chbackground" id="chbackground-tab" role="tab"><i class="material-icons">wallpaper</i> Background</a> </li> <!--<li class="nav-item"> <a aria-controls="profile" aria-selected="false" class="nav-link" data-toggle="tab" href="#profile" id="profile-tab" role="tab">Profile</a> </li>--> <li class="nav-item"> <a aria-controls="lookfeel" aria-selected="false" class="nav-link" data-toggle="tab" href="#lookfeel" id="lookfeel-tab" role="tab"><i class="material-icons">format_paint</i> Change look-and-feel</a> </li> </ul> <div class="tab-content" id="justifiedTabContent"> <div aria-labelledby="chbackground-tab" class="tab-pane fade show active" id="chbackground" role="tabpanel"> <h6>Click <code><i class="material-icons">folder</i> Change</code> to use any background/image you want.</h6> <div class="row"> <div class="col-sm-6"> <div class="card"> <tag id="getbg-personalization"></tag> <div class="card-body"> <h5 class="card-title">Desktop</h5> <p class="card-text">The area of icons that appears after you turn on and login on your device.</p> <button onclick=C2('go-changebg'); class="btn btn-primary"><i class="material-icons">folder</i> Change...</button> </div> </div> </div> <div class="col-sm-6"> <div class="card"> <img width="100%" class="card-img-top" src="background.png" alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Lockscreen</h5> <p class="card-text">This area appears when you lock your device or it is naturally locked after a inactive period.</p> <button href="#" class="btn btn-primary"><i class="material-icons">folder</i> Change...</button> </div> </div> </div> </div> <h6>or <button href="#" class="btn btn-primary"><i class="material-icons">folder</i> Change both at once...</button></h6> </div> <!--<div aria-labelledby="profile-tab" class="tab-pane fade" id="profile" role="tabpanel">...</div>--> <div aria-labelledby="lookfeel-tab" class="tab-pane fade" id="lookfeel" role="tabpanel"> <!--<tag id="dark-input"><div class="custom-control custom-switch"><input onclick=C2('darktheme'); class="custom-control-input" id="customSwitch" type="checkbox"><span class="custom-control-track"></span><label class="custom-control-label" for="customSwitch">Dark theme</label></div></tag>--> Soon! </div> </div> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/personalization.html --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/profile.html ----> --------------------------------------------------------------------------------------------------------------------------- <div class="backgroundWrap withImage"> <tag id="getbg-home"></tag> <div class="gradient"></div> </div> <div class="card elevation-24" style="float:right"> <div class="card-body"> <center><tag id="usrpic"></tag> <h5 class="card-title"><tag id="showfullname"></tag></h5> <div onclick="C2('wallet-show');" title="Go to your Wallet ⟠" class="linkish"><img width="16px" src="eth-diamond-glyph.png"> <span><tag id="showethaddress"></tag></span></div> <tag id="showtwitterhandle"></tag> <br/><span><tag id="showensname"></tag></span> <br/><span><tag id="showusername"></tag></span> </center> <style> @keyframes djFCwZ{0%{transform:rotate3d(0,1,0,0);}100%{transform:rotate3d(0,1,0,360deg);}} .balancecount { font-size: 60px; /*display: block;*/ font-weight: bold; color: #000; } </style> <div title="FLOF tokens"> <img class="align-left" src="file:///1/img/token.png" alt="FLOF tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="flofbalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample" title="Balance Breakdown">+</a> <div class="collapse" id="collapseExample"> <div><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your FLOF at Polygon"> Polygon: <span id="flofbalancepolygon"></span> <span>FLOF</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your FLOF at XDai"> XDai: <span id="flofbalancexdai"></span> <span>FLOF</span></p></div> </div> <br/> <br/> <span>Estimated total USD you hold: $<tag id="totalusdbalance1"></tag></span> <br/> <br/> <center><h6 id="hostname" onclick=C2('about-show'); class="card-subtitle mb-2 text-muted linkish" title="Device name">...</h6></center> </div> </div> <ul class="nav nav-justified nav-tabs" id="profileTabs" role="tablist"> <li class="nav-item"> <a aria-controls="main" aria-selected="true" class="nav-link active" data-toggle="tab" href="#main" id="main-tab" role="tab"><i class="material-icons">home</i> Main</a> </li> <li class="nav-item"> <a aria-controls="friends" aria-selected="false" class="nav-link" data-toggle="tab" href="#friends" id="friends-tab" role="tab"><i class="material-icons">people</i> Friends</a> </li> <li class="nav-item"> <a aria-controls="wallet" aria-selected="false" class="nav-link" data-toggle="tab" href="#wallet" id="wallet-tab" role="tab"><i class="material-icons">account_balance_wallet</i> Wallet <span class="badge green">$<tag id="totalusdbalance2"></tag></span></a> </li> <li class="nav-item"> <a aria-controls="inventory" aria-selected="false" class="nav-link" data-toggle="tab" href="#inventory" id="inventory-tab" role="tab"><i class="material-icons">inbox</i> Inventory</a> </li> </ul> <div class="tab-content" id="justifiedTabContent"> <div aria-labelledby="main-tab" class="tab-pane fade show active" id="main" role="tabpanel"> Welcome! </div> <div aria-labelledby="friends-tab" class="tab-pane fade" id="friends" role="tabpanel"> Soon! </div> <div aria-labelledby="wallet-tab" class="tab-pane fade" id="wallet" role="tabpanel"> <div title="ETH tokens"> <span>ETH</span><img class="align-left" src="ethtoken.svg" alt="ETH tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="ethbalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseETHbreakdown" role="button" aria-expanded="false" aria-controls="collapseETHbreakdown" title="Balance Breakdown">+</a> <div class="collapse" id="collapseETHbreakdown"> <div><p><img width="16px" src="/1/img/networks/ethereum.svg" alt="" title="Your ETH at Ethereum"> Ethereum: <span id="ethbalanceethereum"></span> <span>ETH</span></p><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your ETH at Polygon"> Polygon: <span id="ethbalancepolygon"></span> <span>ETH</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your ETH at XDai"> XDai: <span id="ethbalancexdai"></span> <span>ETH</span></p></div> </div> <hr/> <div title="FLOF tokens"> <span>FLOF</span><img class="align-left" src="file:///1/img/token.png" alt="FLOF tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="flofbalancetotal-profilewallet"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample" title="Balance Breakdown">+</a> <div class="collapse" id="collapseExample"> <div><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your FLOF at Polygon"> Polygon: <span id="flofbalancepolygon-profilewallet"></span> <span>FLOF</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your FLOF at XDai"> XDai: <span id="flofbalancexdai-profilewallet"></span> <span>FLOF</span></p></div> </div> <hr/> <div title="PLA tokens"> <span>PLA</span><img class="align-left" src="platoken.png" alt="PLA tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="plabalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapsePLAbreakdown" role="button" aria-expanded="false" aria-controls="collapsePLAbreakdown" title="Balance Breakdown">+</a> <div class="collapse" id="collapsePLAbreakdown"> <div><!--<p><img width="16px" src="/1/img/networks/ethereum.svg" alt="" title="Your PLA at Ethereum"> Ethereum: <span id="plabalanceethereum"></span> <span>PLA</span></p>--><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your PLA at Polygon"> Polygon: <span id="plabalancepolygon"></span> <span>PLA</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your PLA at XDai"> XDai: <span id="plabalancexdai"></span> <span>PLA</span></p></div> </div> <hr/> <div title="GAME tokens"> <span>GAME</span><img class="align-left" src="gametoken.png" alt="GAME tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="gamebalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseGAMEbreakdown" role="button" aria-expanded="false" aria-controls="collapseGAMEbreakdown" title="Balance Breakdown">+</a> <div class="collapse" id="collapseGAMEbreakdown"> <div><!--<p><img width="16px" src="/1/img/networks/ethereum.svg" alt="" title="Your GAME at Ethereum"> Ethereum: <span id="gamebalanceethereum"></span> <span>GAME</span></p>--><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your GAME at Polygon"> Polygon: <span id="gamebalancepolygon"></span> <span>GAME</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your GAME at XDai"> XDai: <span id="gamebalancexdai"></span> <span>GAME</span></p></div> </div> <hr/> <center><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseMoreTokens" role="button" aria-expanded="false" aria-controls="collapseMoreTokens" title="More tokens">+</a></center> <div class="collapse" id="collapseMoreTokens"> <div title="MANA tokens"> <span>MANA</span><img class="align-left" src="manatoken.svg" alt="MANA tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="manabalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseMANAbreakdown" role="button" aria-expanded="false" aria-controls="collapseMANAbreakdown" title="Balance Breakdown">+</a> <div class="collapse" id="collapseMANAbreakdown"> <div><p><img width="16px" src="/1/img/networks/ethereum.svg" alt="" title="Your MANA at Ethereum"> Ethereum: <span id="manabalanceethereum"></span> <span>MANA</span></p><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your MANA at Polygon"> Polygon: <span id="manabalancepolygon"></span> <span>MANA</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your MANA at XDai"> XDai: <span id="manabalancexdai"></span> <span>MANA</span></p></div> </div> <hr/> <div title="SAND tokens"> <span>SAND</span><img class="align-left" src="sandtoken.svg" alt="SAND tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="sandbalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseSANDbreakdown" role="button" aria-expanded="false" aria-controls="collapseSANDbreakdown" title="Balance Breakdown">+</a> <div class="collapse" id="collapseSANDbreakdown"> <div><p><img width="16px" src="/1/img/networks/ethereum.svg" alt="" title="Your SAND at Ethereum"> Ethereum: <span id="sandbalanceethereum"></span> <span>SAND</span></p><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your SAND at Polygon"> Polygon: <span id="sandbalancepolygon"></span> <span>SAND</span></p></div> </div> <hr/> <div title="DAI tokens"> <span>DAI</span><img class="align-left" src="daitoken.svg" alt="DAI tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="daibalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseDAIbreakdown" role="button" aria-expanded="false" aria-controls="collapseDAIbreakdown" title="Balance Breakdown">+</a> <div class="collapse" id="collapseDAIbreakdown"> <div><p><img width="16px" src="/1/img/networks/ethereum.svg" alt="" title="Your DAI at Ethereum"> Ethereum: <span id="daibalanceethereum"></span> <span>DAI</span></p><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your DAI at Polygon"> Polygon: <span id="daibalancepolygon"></span> <span>DAI</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your DAI at XDai"> XDai: <span id="daibalancexdai"></span> <span>DAI</span></p></div> </div> <hr/> <div title="GNO tokens"> <span>GNO</span><img class="align-left" src="gnotoken.svg" alt="GNO tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="gnobalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseGNObreakdown" role="button" aria-expanded="false" aria-controls="collapseGNObreakdown" title="Balance Breakdown">+</a> <div class="collapse" id="collapseGNObreakdown"> <div><p><img width="16px" src="/1/img/networks/ethereum.svg" alt="" title="Your GNO at Ethereum"> Ethereum: <span id="gnobalanceethereum"></span> <span>GNO</span></p><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your GNO at Polygon"> Polygon: <span id="gnobalancepolygon"></span> <span>GNO</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your GNO at XDai"> XDai: <span id="gnobalancexdai"></span> <span>GNO</span></p></div> </div> <hr/> <div title="MATIC tokens"> <span>MATIC</span><img class="align-left" src="/1/img/networks/polygon.svg" alt="MATIC tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="maticbalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseMATICbreakdown" role="button" aria-expanded="false" aria-controls="collapseMATICbreakdown" title="Balance Breakdown">+</a> <div class="collapse" id="collapseMATICbreakdown"> <div><p><img width="16px" src="/1/img/networks/ethereum.svg" alt="" title="Your MATIC at Ethereum"> Ethereum: <span id="maticbalanceethereum"></span> <span>MATIC</span></p><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your MATIC at Polygon"> Polygon: <span id="maticbalancepolygon"></span> <span>MATIC</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your MATIC at XDai"> XDai: <span id="maticbalancexdai"></span> <span>MATIC</span></p></div> </div> <hr/> <div title="SLP tokens"> <span>SLP</span><img class="align-left" src="slptoken.svg" alt="SLP tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="slpbalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseSLPbreakdown" role="button" aria-expanded="false" aria-controls="collapseSLPbreakdown" title="Balance Breakdown">+</a> <div class="collapse" id="collapseSLPbreakdown"> <div><p><img width="16px" src="/1/img/networks/ethereum.svg" alt="" title="Your SLP at Ethereum"> Ethereum: <span id="slpbalanceethereum"></span> <span>SLP</span></p><!--<p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your SLP at Polygon"> Polygon: <span id="slpbalancepolygon"></span> <span>SLP</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your SLP at XDai"> XDai: <span id="slpbalancexdai"></span> <span>SLP</span></p>--></div> </div> <hr/> <div title="AXS tokens"> <span>AXS</span><img class="align-left" src="axstoken.svg" alt="AXS tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="axsbalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseAXSbreakdown" role="button" aria-expanded="false" aria-controls="collapseAXSbreakdown" title="Balance Breakdown">+</a> <div class="collapse" id="collapseAXSbreakdown"> <div><p><img width="16px" src="/1/img/networks/ethereum.svg" alt="" title="Your AXS at Ethereum"> Ethereum: <span id="axsbalanceethereum"></span> <span>AXS</span></p><!--<p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your AXS at Polygon"> Polygon: <span id="axsbalancepolygon"></span> <span>AXS</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your AXS at XDai"> XDai: <span id="axsbalancexdai"></span> <span>AXS</span></p>--></div> </div> <hr/> <div title="USDC tokens"> <span>USDC</span><img class="align-left" src="usdctoken.svg" alt="USDC tokens" style="animation: 5s cubic-bezier(0.83, 0, 0.17, 1) 0s infinite normal none running djFCwZ;padding: 2rem 0px 0px;filter: drop-shadow(rgba(0, 0, 0, 0.15) 0px 2px 4px);" width="48px"> <br/><h3 id="usdcbalancetotal"></h3> </div><a class="btn btn-outline-info" data-toggle="collapse" href="#collapseUSDCbreakdown" role="button" aria-expanded="false" aria-controls="collapseUSDCbreakdown" title="Balance Breakdown">+</a> <div class="collapse" id="collapseUSDCbreakdown"> <div><p><img width="16px" src="/1/img/networks/ethereum.svg" alt="" title="Your USDC at Ethereum"> Ethereum: <span id="usdcbalanceethereum"></span> <span>USDC</span></p><p><img width="16px" src="/1/img/networks/polygon.svg" alt="" title="Your USDC at Polygon"> Polygon: <span id="usdcbalancepolygon"></span> <span>USDC</span></p><p><img width="16px" src="/1/img/networks/xdai.svg" alt="" title="Your USDC at XDai"> XDai: <span id="usdcbalancexdai"></span> <span>USDC</span></p></div> </div> <hr/> <!--<center>Want to view even more tokens you may have? Access Zerion</center>--> </div> <center><span>Do you want more from your wallet? 🧚💫</span> <button onclick=C2('openframe'); class="btn btn-info"><i class="material-icons">account_balance_wallet</i> Open Frame wallet</button></center> </div> <div aria-labelledby="inventory-tab" class="tab-pane fade" id="inventory" role="tabpanel"> <p>Soon!</p> <p>We will list your PoAPs, PFPs, pets, paintings, Plasmmer products and other NFTs that don't start with "P".</p> <ul class="nav nav-justified nav-tabs" id="inventoryTabs" role="tablist"> <li class="nav-item"> <a aria-controls="poaps" aria-selected="true" class="nav-link active" data-toggle="tab" href="#poaps" id="poaps-tab" role="tab">PoAPs <span class="badge blue"><tag id="badgecount_inventory-poaps"></tag></span></a> </li> <li class="nav-item"> <a aria-controls="trophies" aria-selected="false" class="nav-link" data-toggle="tab" href="#trophies" id="trophies-tab" role="tab">Trophies <span class="badge blue"><tag id="badgecount_inventory-trophies"></tag></span></a> </li> <li class="nav-item"> <a aria-controls="avatars" aria-selected="false" class="nav-link" data-toggle="tab" href="#avatars" id="avatars-tab" role="tab">PFPs/Avatars <span class="badge blue"><tag id="badgecount_inventory-avatars"></tag></span></a> </li> <li class="nav-item"> <a aria-controls="backgrounds" aria-selected="false" class="nav-link" data-toggle="tab" href="#backgrounds" id="backgrounds-tab" role="tab">Backgrounds <span class="badge blue"><tag id="badgecount_inventory-backgrounds"></tag></span></a> </li> <li class="nav-item"> <a aria-controls="domains" aria-selected="false" class="nav-link" data-toggle="tab" href="#domains" id="domains-tab" role="tab">Domains <span class="badge blue"><tag id="badgecount_inventory-domains"></tag></span></a> </li> <li class="nav-item"> <a aria-controls="metaversestuff" aria-selected="false" class="nav-link" data-toggle="tab" href="#metaversestuff" id="metaversestuff-tab" role="tab">Metaverse Stuff <span class="badge blue"><tag id="badgecount_inventory-metaversestuff"></tag></span></a> </li> </ul> <div class="tab-content" id="justifiedTabContent"> <div aria-labelledby="poaps-tab" class="tab-pane fade show active" id="poaps" role="tabpanel"> Soon! </div> <div aria-labelledby="trophies-tab" class="tab-pane fade" id="trophies" role="tabpanel"> Soon! </div> <div aria-labelledby="avatars-tab" class="tab-pane fade" id="avatars" role="tabpanel"> Soon! </div> <div aria-labelledby="backgrounds-tab" class="tab-pane fade" id="backgrounds" role="tabpanel"> (soon, subscribe via Alerts) </div> <div aria-labelledby="domains-tab" class="tab-pane fade" id="domains" role="tabpanel"> Soon! </div> <div aria-labelledby="metaversestuff-tab" class="tab-pane fade" id="metaversestuff" role="tabpanel"> <ul class="nav nav-justified nav-tabs" id="inventorymetaverseTabs" role="tablist"> <li class="nav-item"> <a aria-controls="lands" aria-selected="true" class="nav-link active" data-toggle="tab" href="#lands" id="lands-tab" role="tab">Lands <span class="badge blue"><tag id="badgecount_inventory-lands"></tag></span></a> </li> <li class="nav-item"> <a aria-controls="metaitems" aria-selected="false" class="nav-link" data-toggle="tab" href="#metaitems" id="metaitems-tab" role="tab">Items <span class="badge blue"><tag id="badgecount_inventory-metaitems"></tag></span></a> </li> <li class="nav-item"> <a aria-controls="paintings" aria-selected="false" class="nav-link" data-toggle="tab" href="#paintings" id="paintings-tab" role="tab">Paintings <span class="badge blue"><tag id="badgecount_inventory-paintings"></tag></span></a> </li> <li class="nav-item"> <a aria-controls="wearables" aria-selected="false" class="nav-link" data-toggle="tab" href="#wearables" id="wearables-tab" role="tab">Wearables <span class="badge blue"><tag id="badgecount_inventory-wearables"></tag></span></a> </li> <li class="nav-item"> <a aria-controls="pets" aria-selected="false" class="nav-link" data-toggle="tab" href="#pets" id="pets-tab" role="tab">Pets <span class="badge blue"><tag id="badgecount_inventory-pets"></tag></span></a> </li> </ul> <div class="tab-content" id="justifiedTabContent"> <div aria-labelledby="lands-tab" class="tab-pane fade show active" id="lands" role="tabpanel"> Soon! </div> <div aria-labelledby="metaitems-tab" class="tab-pane fade" id="metaitems" role="tabpanel"> Soon! </div> <div aria-labelledby="paintings-tab" class="tab-pane fade" id="paintings" role="tabpanel"> Soon! </div> <div aria-labelledby="wearables-tab" class="tab-pane fade" id="wearables" role="tabpanel"> Soon! </div> <div aria-labelledby="pets-tab" class="tab-pane fade" id="pets" role="tabpanel"> Soon! </div> </div> </div> </div> </div> </div> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/profile.html --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/about.html ----> --------------------------------------------------------------------------------------------------------------------------- <div class="card elevation-24" style="float:right"> <div class="card-body"> <center><tag id="osicon"></tag> <!--h5 class="card-title">Floflis tag id=version></tag</h5--> <h5 class="card-title"></h5> <h6 class="card-subtitle mb-2 text-muted">(c) <tag id="year"></tag>. Build <b id="build"></b></h6></center> <ul class="list-group list-group-flush"> <li class="list-group-item" title="Device name"><i class="material-icons">devices</i> <b id="hostname">...</b></li> <li class="list-group-item" title="OS CPU architecture"><i class="material-icons">developer_board</i> <b id="osarch">...</b> Operating System</li> </ul> <div class="card-footer text-muted" style="color:#24b92a!important"><center><i class="material-icons">check_circle</i> up-to-date</center></div> <center><h6 onclick=C2('moreinfo-show'); class="card-subtitle mb-2 text-muted linkish"><i class="material-icons">info</i> More system info</h6><br/> <h6 onclick=C2('moresettings-show'); class="card-subtitle mb-2 text-muted linkish"><i class="material-icons">settings</i> More settings</h6> </center> </div> </div> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/about.html --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/moresettings.html ----> --------------------------------------------------------------------------------------------------------------------------- <div class="alert alert-success" role="alert"> <h4 class="alert-heading">Access all settings</h4> <p>While Floflis Central isn't done, a lot of settings will be missing here (yet).</p> <hr> <p class="mb-0">Floflis Central focus more on settings that are relative to Floflis.</p> </div> <img class="align-left" width="150px" src="/1/img/humanrepresentation/action-create.png"/> <br/> <br/> <button onclick=C2('gnomesettings'); class="btn btn-info"><i class="material-icons">settings_applications</i> Open classical settings</button> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/moresettings.html --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/setup/setup.html ----> --------------------------------------------------------------------------------------------------------------------------- <div id="app"> <tag id="dark"></tag> <header class="navbar navbar-dark navbar-full bg-primary doc-navbar-permanent-clipped" style=" user-select: none; -webkit-app-region: drag;background:green!important"> <span class="navbar-brand">Installing Floflis...</span> </header> <div class="content"> <article> <div class="stepper-vert" id="setupstepper"> <div class="stepper active"> <div class="stepper-icon">1</div> <span class="stepper-text"><i class="material-icons">nature</i> Creating tree folder above root</span> </div> <div class="stepper"> <div class="stepper-icon">2</div> <span class="stepper-text"><i class="material-icons">folder_open</i> Creating sys folder</span> </div> <div class="stepper"> <div class="stepper-icon">3</div> <span class="stepper-text"><i class="material-icons">bubble_chart</i> Setting Open Badges</span> </div> <div class="stepper"> <div class="stepper-icon">4</div> <span class="stepper-text"><i class="material-icons">apps</i> Installing apps</span> </div> <div class="stepper"> <div class="stepper-icon">5</div> <span class="stepper-text"><i class="material-icons">videogame_asset</i> Creating folders for games and HTML5 files</span> </div> <div class="stepper"> <div class="stepper-icon">6</div> <span class="stepper-text"><i class="material-icons">devices</i> Set device</span> </div> </div> <div class="scroller setupstatus" id="setupcontent"> <div class="progress"><div class="progress-bar progress-bar-indeterminate" role="progressbar"></div></div> <h1 id="setupstatus"></h1> </div> </article> </div> </div> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/c2export/HTML/setup/setup.html ---------------------------------------------------------------------------------------------------------------------------
in reply to: 0x53782b1b61a0d3384028e1efd3f58a9ea8fdb06ec561ebdbcee85f3ed2207230. <action id="24" name="Get elements" sid="280048657395894" type="UI"> <param id="0" name="ID/Class">&quot;#nav-moresettings&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="30" name="Set title" sid="109123357569626" type="Electron"> <param id="0" name="Title">&quot;Floflis Central - Profile&quot;</param> </action> <action id="-16" name="Wait" sid="863511187447156" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="697443408105620" type="UI"> <param id="0" name="ID/Class">&quot;#hostname&quot;</param> <param id="1" name="Set">&quot;&lt;i class=material-icons&gt;devices&lt;/i&gt; &quot; &amp; Electron.GetOSHostname</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="-16" name="Wait" sid="721651418510421" type="System"> <param id="0" name="Seconds">dt</param> </action> <action disabled="1" id="9" name="Read" sid="255893733002805" type="Electron"> <param id="0" name="Tag">&quot;sysinfo&quot;</param> <param id="1" name="Path">&quot;/1/Floflis/system/os.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> <action id="-16" name="Wait" sid="435749486222655" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="-16" name="Wait" sid="930574496851672" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="788782399183392" type="UI"> <param id="0" name="ID/Class">&quot;#showusername&quot;</param> <param id="1" name="Set">&quot;🐧&quot; &amp; Browser.ExecJS(&quot;username.sync()&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="128007717735303" type="UI"> <param id="0" name="ID/Class">&quot;#showethaddress&quot;</param> <param id="1" name="Set">user.Value(0,&quot;eth&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="303491059704436" type="UI"> <param id="0" name="ID/Class">&quot;#showfullname&quot;</param> <param id="1" name="Set">user.Value(0,&quot;fullname&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="919669447221428" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="294750159823733" type="UI"> <param id="0" name="ID/Class">&quot;#showensname&quot;</param> <param id="1" name="Set">user.Value(0,&quot;ens&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="905852282297525" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="571331910766126" type="UI"> <param id="0" name="ID/Class">&quot;#usrpic&quot;</param> <param id="1" name="Set">&quot;&lt;img onclick=C2(&quot;&quot;userwindow-show&quot;&quot;); width=&quot;&quot;150px&apos;&quot;&quot; style=&quot;&quot;border-radius:50%&quot;&quot; src=&quot;&quot;file://&quot; &amp; &quot;/home/&quot; &amp; Browser.ExecJS(&quot;username.sync()&quot;) &amp; &quot;/.face&quot; &amp; &quot;&quot;&quot; title=&quot;&quot;&quot; &amp; &quot;Click to change &quot; &amp; Browser.ExecJS(&quot;username.sync()&quot;) &amp; &quot;&apos;s avatar, password, name, etc.&quot; &amp; &quot;&quot;&quot; class=&quot;&quot;linkish&quot;&quot;/&gt;&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="161624167635491" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="9" name="Read" sid="715965354356435" type="Electron"> <param id="0" name="Tag">&quot;personalizationjsonread-home&quot;</param> <param id="1" name="Path">&quot;/1/config/personalization.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> <action id="-16" name="Wait" sid="259754207512633" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="9" name="Read" sid="680581455094896" type="Electron"> <param id="0" name="Tag">&quot;userjsonread&quot;</param> <param id="1" name="Path">&quot;/1/config/user.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> </actions> <sub-events> <comment>Load all tokens&apos; balance into Wallet</comment> <event-block sid="850016689623660"> <conditions> <condition id="-4" name="Trigger once while true" sid="592099612601637" type="System" /> </conditions> <actions> <action id="24" name="Get elements" sid="415381858423991" type="UI"> <param id="0" name="ID/Class">&quot;#flofbalancetotal-profilewallet&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;flof&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="348612991320813" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="131528155166093" type="UI"> <param id="0" name="ID/Class">&quot;#flofbalancepolygon-profilewallet&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;flof&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="981414291557238" type="UI"> <param id="0" name="ID/Class">&quot;#flofbalancexdai-profilewallet&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;flof&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="536084426641626" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="503158996039793" type="UI"> <param id="0" name="ID/Class">&quot;#ethbalancetotal&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;eth&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="689475172078539" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="918718206792642" type="UI"> <param id="0" name="ID/Class">&quot;#ethbalanceethereum&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;eth&quot;,&quot;ethereum&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="604298758032283" type="UI"> <param id="0" name="ID/Class">&quot;#ethbalancepolygon&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;eth&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="643547781420786" type="UI"> <param id="0" name="ID/Class">&quot;#ethbalancexdai&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;eth&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="546342663052027" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="807260041532866" type="UI"> <param id="0" name="ID/Class">&quot;#plabalancetotal&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;pla&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="630395398406523" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="933932716110252" type="UI"> <param id="0" name="ID/Class">&quot;#plabalancepolygon&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;pla&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="915044351242933" type="UI"> <param id="0" name="ID/Class">&quot;#plabalancexdai&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;pla&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="523568676868519" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="900602580961547" type="UI"> <param id="0" name="ID/Class">&quot;#gamebalancetotal&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;game&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="798405885152396" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="799560183341269" type="UI"> <param id="0" name="ID/Class">&quot;#gamebalancepolygon&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;game&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="876767039208943" type="UI"> <param id="0" name="ID/Class">&quot;#gamebalancexdai&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;game&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="251632238795445" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="346705863316842" type="UI"> <param id="0" name="ID/Class">&quot;#manabalancetotal&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;mana&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="143883344072200" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="235312876856611" type="UI"> <param id="0" name="ID/Class">&quot;#manabalanceethereum&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;mana&quot;,&quot;ethereum&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="902908294879302" type="UI"> <param id="0" name="ID/Class">&quot;#manabalancepolygon&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;mana&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="667042891986783" type="UI"> <param id="0" name="ID/Class">&quot;#manabalancexdai&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;mana&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="136677751849137" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="398529125668779" type="UI"> <param id="0" name="ID/Class">&quot;#sandbalancetotal&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;sand&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="746119845292986" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="304288967422260" type="UI"> <param id="0" name="ID/Class">&quot;#sandbalanceethereum&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;sand&quot;,&quot;ethereum&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="859417043439094" type="UI"> <param id="0" name="ID/Class">&quot;#sandbalancepolygon&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;sand&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="869111519850038" type="UI"> <param id="0" name="ID/Class">&quot;#sandbalancexdai&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;sand&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="767567780936150" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="445583642756387" type="UI"> <param id="0" name="ID/Class">&quot;#daibalancetotal&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;dai&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="946002571643343" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="406058525551156" type="UI"> <param id="0" name="ID/Class">&quot;#daibalanceethereum&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;dai&quot;,&quot;ethereum&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="816479621385225" type="UI"> <param id="0" name="ID/Class">&quot;#daibalancepolygon&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;dai&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="714722221677758" type="UI"> <param id="0" name="ID/Class">&quot;#daibalancexdai&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;dai&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="569362059209137" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="621088504910337" type="UI"> <param id="0" name="ID/Class">&quot;#gnobalancetotal&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;gno&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="754048067075124" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="448369586358012" type="UI"> <param id="0" name="ID/Class">&quot;#gnobalanceethereum&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;gno&quot;,&quot;ethereum&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="606350560280009" type="UI"> <param id="0" name="ID/Class">&quot;#gnobalancepolygon&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;gno&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="512257838419180" type="UI"> <param id="0" name="ID/Class">&quot;#gnobalancexdai&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;gno&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="264147057329778" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="726500944570851" type="UI"> <param id="0" name="ID/Class">&quot;#maticbalancetotal&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;matic&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="169225358887456" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="960281884449246" type="UI"> <param id="0" name="ID/Class">&quot;#maticbalanceethereum&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;matic&quot;,&quot;ethereum&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="804504072823597" type="UI"> <param id="0" name="ID/Class">&quot;#maticbalancepolygon&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;matic&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="283057085519422" type="UI"> <param id="0" name="ID/Class">&quot;#maticbalancexdai&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;matic&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="416635971002940" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="687640907133264" type="UI"> <param id="0" name="ID/Class">&quot;#slpbalancetotal&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;slp&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="300424105912206" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="960151599679877" type="UI"> <param id="0" name="ID/Class">&quot;#slpbalanceethereum&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;slp&quot;,&quot;ethereum&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="875040363414796" type="UI"> <param id="0" name="ID/Class">&quot;#slpbalancepolygon&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;slp&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="117243551010625" type="UI"> <param id="0" name="ID/Class">&quot;#slpbalancexdai&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;slp&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="298764367943172" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="348396409729460" type="UI"> <param id="0" name="ID/Class">&quot;#axsbalancetotal&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;axs&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="879179011516900" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="599964864068133" type="UI"> <param id="0" name="ID/Class">&quot;#axsbalanceethereum&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;axs&quot;,&quot;ethereum&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="283527973486913" type="UI"> <param id="0" name="ID/Class">&quot;#axsbalancepolygon&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;axs&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="809059666880094" type="UI"> <param id="0" name="ID/Class">&quot;#axsbalancexdai&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;axs&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="468746400820337" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="158815406796325" type="UI"> <param id="0" name="ID/Class">&quot;#usdcbalancetotal&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;usdc&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="221062933316291" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="453564365830843" type="UI"> <param id="0" name="ID/Class">&quot;#usdcbalanceethereum&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;usdc&quot;,&quot;ethereum&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="415449431271339" type="UI"> <param id="0" name="ID/Class">&quot;#usdcbalancepolygon&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;usdc&quot;,&quot;polygon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="958229250445390" type="UI"> <param id="0" name="ID/Class">&quot;#usdcbalancexdai&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;usdc&quot;,&quot;xdai&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="548613264456747" type="System"> <param id="0" name="Seconds">dt</param> </action> <action disabled="1" id="24" name="Get elements" sid="573813491829946" type="UI"> <param id="0" name="ID/Class">&quot;#totalusdbalance&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;usd&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="14" name="Log" sid="352670077520900" type="Browser"> <param id="0" name="Type">0</param> <param id="1" name="Message">&quot;USD total balance:&quot; &amp; tokens.Value(0,&quot;usd&quot;,&quot;total&quot;)</param> </action> <action id="24" name="Get elements" sid="988520893296201" type="UI"> <param id="0" name="ID/Class">&quot;#totalusdbalance1&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;usd&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="875719343489741" type="UI"> <param id="0" name="ID/Class">&quot;#totalusdbalance2&quot;</param> <param id="1" name="Set">tokens.Value(0,&quot;usd&quot;,&quot;total&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> </actions> </event-block> <variable constant="0" name="nftsValue0rockstarsofepnsbalance" sid="794333857569124" static="0" type="number">0</variable> <variable constant="0" name="nftsValue0expansionpunksbalance" sid="689870517265902" static="0" type="number">0</variable> <variable constant="0" name="nftsValue0axiepetbalance" sid="156842127520712" static="0" type="number">0</variable> <variable constant="0" name="nftsValue0cryptokittiesbalance" sid="162679746883415" static="0" type="number">0</variable> <variable constant="0" name="nftsValue0danimesqartbalance" sid="268249741010372" static="0" type="number">0</variable> <variable constant="0" name="sumtrophies" sid="662226647004010" static="0" type="number">0</variable> <variable constant="0" name="sumpfps" sid="724176902960722" static="0" type="number">0</variable> <variable constant="0" name="sumpets" sid="458805655992338" static="0" type="number">0</variable> <variable constant="0" name="summetaversestuff" sid="536476763398718" static="0" type="number">0</variable> <event-block sid="363424903545081"> <conditions> <condition id="-4" name="Trigger once while true" sid="288989771859338" type="System" /> </conditions> <actions> <action id="-9" name="Set value" sid="213640921377845" type="System"> <param id="0" name="Variable">nftsValue0rockstarsofepnsbalance</param> <param id="1" name="Value">nfts.Value(0,&quot;rockstarsofepns&quot;,&quot;balance&quot;)</param> </action> <action id="-9" name="Set value" sid="902332806685515" type="System"> <param id="0" name="Variable">nftsValue0expansionpunksbalance</param> <param id="1" name="Value">nfts.Value(0,&quot;expansionpunks&quot;,&quot;balance&quot;)</param> </action> <action id="-9" name="Set value" sid="633688858956957" type="System"> <param id="0" name="Variable">nftsValue0axiepetbalance</param> <param id="1" name="Value">nfts.Value(0,&quot;axiepet&quot;,&quot;balance&quot;)</param> </action> <action id="-9" name="Set value" sid="382273405547447" type="System"> <param id="0" name="Variable">nftsValue0cryptokittiesbalance</param> <param id="1" name="Value">nfts.Value(0,&quot;cryptokitties&quot;,&quot;balance&quot;)</param> </action> <action id="-9" name="Set value" sid="313596799478157" type="System"> <param id="0" name="Variable">nftsValue0danimesqartbalance</param> <param id="1" name="Value">nfts.Value(0,&quot;danimesqart&quot;,&quot;balance&quot;)</param> </action> <action disabled="1" id="-9" name="Set value" sid="771173294869206" type="System"> <param id="0" name="Variable">sumtrophies</param> <param id="1" name="Value">nftsValue0rockstarsofepnsbalance+0</param> </action> <action id="-9" name="Set value" sid="498981096176105" type="System"> <param id="0" name="Variable">sumtrophies</param> <param id="1" name="Value">int(nftsValue0rockstarsofepnsbalance)+0</param> </action> <action disabled="1" id="-9" name="Set value" sid="703252494043904" type="System"> <param id="0" name="Variable">sumpfps</param> <param id="1" name="Value">nftsValue0expansionpunksbalance+0</param> </action> <action id="-9" name="Set value" sid="803680803681547" type="System"> <param id="0" name="Variable">sumpfps</param> <param id="1" name="Value">int(nftsValue0expansionpunksbalance)+0</param> </action> <action disabled="1" id="-9" name="Set value" sid="453825446674350" type="System"> <param id="0" name="Variable">sumpets</param> <param id="1" name="Value">nftsValue0axiepetbalance+nftsValue0cryptokittiesbalance</param> </action> <action id="-9" name="Set value" sid="635275889669568" type="System"> <param id="0" name="Variable">sumpets</param> <param id="1" name="Value">int(nftsValue0axiepetbalance)+int(nftsValue0cryptokittiesbalance)</param> </action> <action disabled="1" id="-9" name="Set value" sid="660346626622027" type="System"> <param id="0" name="Variable">summetaversestuff</param> <param id="1" name="Value">nftsValue0danimesqartbalance+sumpets</param> </action> <action id="-9" name="Set value" sid="623726356999270" type="System"> <param id="0" name="Variable">summetaversestuff</param> <param id="1" name="Value">int(nftsValue0danimesqartbalance)+int(sumpets)</param> </action> </actions> </event-block> <event-block sid="961381459149222"> <conditions> <condition id="-4" name="Trigger once while true" sid="675936472581467" type="System" /> </conditions> <actions> <action id="24" name="Get elements" sid="744975426226551" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-poaps&quot;</param> <param id="1" name="Set">nfts.Value(0,&quot;poap&quot;,&quot;balance&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="887979567904060" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-trophies&quot;</param> <param id="1" name="Set">nftsValue0rockstarsofepnsbalance+0</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="163419179730367" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-trophies&quot;</param> <param id="1" name="Set">sumtrophies</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="449647910149845" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-avatars&quot;</param> <param id="1" name="Set">nftsValue0expansionpunksbalance+0</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="537811911283095" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-avatars&quot;</param> <param id="1" name="Set">sumpfps</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="604197697784766" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-backgrounds&quot;</param> <param id="1" name="Set">&quot;0&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="825321515009031" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-domains&quot;</param> <param id="1" name="Set">nfts.Value(0,&quot;ens&quot;,&quot;balance&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="220247137666224" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-lands&quot;</param> <param id="1" name="Set">&quot;0&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="943629421215083" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-metaitems&quot;</param> <param id="1" name="Set">&quot;0&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="668012426682717" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-paintings&quot;</param> <param id="1" name="Set">nfts.Value(0,&quot;danimesqart&quot;,&quot;balance&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="493551742450190" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-wearables&quot;</param> <param id="1" name="Set">&quot;0&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="216464421332953" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-pets&quot;</param> <param id="1" name="Set">nftsValue0axiepetbalance+nftsValue0cryptokittiesbalance</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="588314053855826" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-pets&quot;</param> <param id="1" name="Set">sumpets</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="987955392515982" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-metaversestuff&quot;</param> <param id="1" name="Set">nfts.Value(0,&quot;danimesqart&quot;,&quot;balance&quot;)+nfts.Value(0,&quot;axiepet&quot;,&quot;balance&quot;)+nfts.Value(0,&quot;cryptokitties&quot;,&quot;balance&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="888151976993147" type="UI"> <param id="0" name="ID/Class">&quot;#badgecount_inventory-metaversestuff&quot;</param> <param id="1" name="Set">summetaversestuff</param> <param id="2" name="Append">&quot;&quot;</param> </action> </actions> </event-block> </sub-events> </event-block> <event-block sid="620604282440255"> <conditions> <condition id="3" name="On C2 Function" sid="579713364355404" type="UI" /> </conditions> <actions /> <sub-events> <event-block sid="529181310163529"> <conditions> <condition id="4" name="Compare C2 Function" sid="369341078744309" type="UI"> <param id="0" name="C2">&quot;wallet-show&quot;</param> <param id="1" name="Case">0</param> </condition> </conditions> <actions> <action id="17" name="Execute Javascript" sid="522620032720333" type="Browser"> <param id="0" name="Javascript">&quot;$(&apos;#profileTabs li:nth-child(3) a&apos;).tab(&apos;show&apos;)&quot;</param> </action> </actions> </event-block> </sub-events> </event-block> <event-block disabled="1" sid="363143187523355"> <conditions> <condition id="0" name="On completed" sid="103309429937543" type="AJAX"> <param id="0" name="Tag">&quot;playwith&quot;</param> </condition> </conditions> <actions /> </event-block> <event-block sid="408557609751044"> <conditions> <condition id="3" name="On read success" sid="542658830718775" type="Electron"> <param id="0" name="Tag">&quot;playwith&quot;</param> </condition> </conditions> <actions> <action id="24" name="Get elements" sid="437686587143724" type="UI"> <param id="0" name="ID/Class">&quot;#nav-playwith&quot;</param> <param id="1" name="Set">Electron.LastReadAsync</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="152854116402728" type="UI"> <param id="0" name="ID/Class">&quot;#nav-home&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="265897202305758" type="UI"> <param id="0" name="ID/Class">&quot;#nav-profile&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="184894866460291" type="UI"> <param id="0" name="ID/Class">&quot;#nav-personalization&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="842280581513074" type="UI"> <param id="0" name="ID/Class">&quot;#nav-about&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="124905249734473" type="UI"> <param id="0" name="ID/Class">&quot;#nav-moresettings&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="30" name="Set title" sid="591191818469322" type="Electron"> <param id="0" name="Title">&quot;Floflis Central - Play with&quot;</param> </action> </actions> </event-block> <event-block sid="514564243198102"> <conditions> <condition id="3" name="On read success" sid="784458312883250" type="Electron"> <param id="0" name="Tag">&quot;personalization&quot;</param> </condition> </conditions> <actions> <action id="24" name="Get elements" sid="672539160954519" type="UI"> <param id="0" name="ID/Class">&quot;#nav-personalization&quot;</param> <param id="1" name="Set">Electron.LastReadAsync</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="558313042362296" type="UI"> <param id="0" name="ID/Class">&quot;#nav-home&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="595766760834397" type="UI"> <param id="0" name="ID/Class">&quot;#nav-profile&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="612299407461789" type="UI"> <param id="0" name="ID/Class">&quot;#nav-playwith&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="432611928218387" type="UI"> <param id="0" name="ID/Class">&quot;#nav-about&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="257961850502501" type="UI"> <param id="0" name="ID/Class">&quot;#nav-moresettings&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="30" name="Set title" sid="834003864649057" type="Electron"> <param id="0" name="Title">&quot;Floflis Central - Personalization&quot;</param> </action> <action id="9" name="Read" sid="787725755448444" type="Electron"> <param id="0" name="Tag">&quot;personalizationjsonread-perso&quot;</param> <param id="1" name="Path">&quot;/1/config/personalization.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> </actions> </event-block> <event-block sid="966238009338123"> <conditions> <condition id="3" name="On read success" sid="301884462268891" type="Electron"> <param id="0" name="Tag">&quot;personalizationjsonread-perso&quot;</param> </condition> </conditions> <actions> <action id="60" name="LoadJSON" sid="401346743263190" type="personalization"> <param id="0" name="JSON">Electron.LastReadAsync</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}"></param> </action> <action id="-16" name="Wait" sid="533582835826203" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="101904350189454" type="UI"> <param id="0" name="ID/Class">&quot;#getbg-personalization&quot;</param> <param id="1" name="Set">&quot;&lt;img width=&quot;&quot;100%&quot;&quot; class=&quot;&quot;card-img-top&quot;&quot; src=&quot;&quot;&quot; &amp; personalization.Value(0,&quot;background&quot;) &amp; &quot;&quot;&quot; alt=&quot;&quot;Desktop background&quot;&quot;&gt;&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> </actions> </event-block> <event-block sid="640737031306192"> <conditions> <condition id="3" name="On C2 Function" sid="878687960971011" type="UI" /> </conditions> <actions /> <sub-events> <event-block sid="110998043566619"> <conditions> <condition id="4" name="Compare C2 Function" sid="852933349204476" type="UI"> <param id="0" name="C2">&quot;go-changebg&quot;</param> <param id="1" name="Case">0</param> </condition> </conditions> <actions> <action id="-9" name="Set value" sid="979696688063481" type="System"> <param id="0" name="Variable">currentdialog</param> <param id="1" name="Value">&quot;setbg&quot;</param> </action> <action id="-16" name="Wait" sid="105551080619761" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="20" name="Show dialog" sid="891021387124347" type="Electron"> <param id="0" name="Title">&quot;Select the image you want as background...&quot;</param> <param id="1" name="Default path">&quot;~/Pictures&quot;</param> <param id="2" name="Confirmation text (optional)">&quot;Set as background&quot;</param> <param id="3" name="Filters (TODO)">&quot;&quot;</param> <param id="4" name="Properties">&quot;openFile&quot;</param> </action> </actions> </event-block> </sub-events> </event-block> <event-block sid="761556203444893"> <conditions> <condition id="8" name="On validate dialog" sid="561443281583858" type="Electron" /> <condition id="-14" name="Compare variable" sid="541889784497290" type="System"> <param id="0" name="Variable">currentdialog</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">&quot;setbg&quot;</param> </condition> </conditions> <actions> <action id="-9" name="Set value" sid="361111961176993" type="System"> <param id="0" name="Variable">currentdialog</param> <param id="1" name="Value">&quot;&quot;</param> </action> <action id="17" name="Execute Javascript" sid="267001635961342" type="Browser"> <param id="0" name="Javascript">&quot;const{exec}=require(&apos;child_process&apos;);exec(`gsettings set org.cinnamon.desktop.background picture-uri file://&quot; &amp; Electron.ChosenPath &amp; &quot;`,(error,stdout,stderr)=&gt;{if(error){console.log(`error:${error.message}`);return}if(stderr){console.log(`stderr:${stderr}`);return}console.log(`${stdout}`)});&quot;</param> </action> <action id="-16" name="Wait" sid="796874571100676" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="17" name="Execute Javascript" sid="979824568557834" type="Browser"> <param id="0" name="Javascript">&quot;const{exec}=require(&apos;child_process&apos;);exec(`cd /1/apps/central/scripts &amp;&amp; sh ./personalization-update.sh`,(error,stdout,stderr)=&gt;{if(error){console.log(`error:${error.message}`);return}if(stderr){console.log(`stderr:${stderr}`);return}console.log(`${stdout}`)});&quot;</param> </action> <action id="-16" name="Wait" sid="509703591411711" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="9" name="Read" sid="900415519784109" type="Electron"> <param id="0" name="Tag">&quot;personalizationjsonread-perso-updt&quot;</param> <param id="1" name="Path">&quot;/1/config/personalization.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> <action disabled="1" id="55" name="Clear" sid="782985529594905" type="personalization"> <param id="0" name="Reference point">0</param> <param id="1" name="Key {n}"></param> </action> <action disabled="1" id="-16" name="Wait" sid="280294046446424" type="System"> <param id="0" name="Seconds">dt</param> </action> <action disabled="1" id="60" name="LoadJSON" sid="927174524339969" type="personalization"> <param id="0" name="JSON">&quot;/1/config/personalization.json&quot;</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}"></param> </action> <action disabled="1" id="-16" name="Wait" sid="961860101963491" type="System"> <param id="0" name="Seconds">dt</param> </action> <action disabled="1" id="24" name="Get elements" sid="306502477365420" type="UI"> <param id="0" name="ID/Class">&quot;#getbg-personalization&quot;</param> <param id="1" name="Set">&quot;&lt;img width=&quot;&quot;100%&quot;&quot; class=&quot;&quot;card-img-top&quot;&quot; src=&quot;&quot;&quot; &amp; personalization.Value(0,&quot;background&quot;) &amp; &quot;&quot;&quot; alt=&quot;&quot;Desktop background&quot;&quot;&gt;&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> </actions> </event-block> <event-block sid="327369113377974"> <conditions> <condition id="3" name="On read success" sid="646522306825316" type="Electron"> <param id="0" name="Tag">&quot;personalizationjsonread-perso-updt&quot;</param> </condition> </conditions> <actions> <action id="55" name="Clear" sid="199351142813555" type="personalization"> <param id="0" name="Reference point">0</param> <param id="1" name="Key {n}"></param> </action> <action id="-16" name="Wait" sid="836006139264717" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="60" name="LoadJSON" sid="829273652734227" type="personalization"> <param id="0" name="JSON">Electron.LastReadAsync</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}"></param> </action> <action id="-16" name="Wait" sid="334102850594137" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="903249590920408" type="UI"> <param id="0" name="ID/Class">&quot;#getbg-personalization&quot;</param> <param id="1" name="Set">&quot;&lt;img width=&quot;&quot;100%&quot;&quot; class=&quot;&quot;card-img-top&quot;&quot; src=&quot;&quot;&quot; &amp; personalization.Value(0,&quot;background&quot;) &amp; &quot;&quot;&quot; alt=&quot;&quot;Desktop background&quot;&quot;&gt;&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> </actions> </event-block> <event-block disabled="1" sid="338737194106137"> <conditions> <condition id="0" name="On completed" sid="641556917896790" type="AJAX"> <param id="0" name="Tag">&quot;about&quot;</param> </condition> </conditions> <actions /> </event-block> <event-block sid="750230484601938"> <conditions> <condition id="3" name="On read success" sid="273708527276851" type="Electron"> <param id="0" name="Tag">&quot;about&quot;</param> </condition> </conditions> <actions> <action id="24" name="Get elements" sid="213546584759930" type="UI"> <param id="0" name="ID/Class">&quot;#nav-about&quot;</param> <param id="1" name="Set">Electron.LastReadAsync</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="552019844133743" type="UI"> <param id="0" name="ID/Class">&quot;#nav-home&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="308559383615001" type="UI"> <param id="0" name="ID/Class">&quot;#nav-profile&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="511819400981138" type="UI"> <param id="0" name="ID/Class">&quot;#nav-playwith&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="589432968522584" type="UI"> <param id="0" name="ID/Class">&quot;#nav-personalization&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="307861214802552" type="UI"> <param id="0" name="ID/Class">&quot;#nav-moresettings&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="30" name="Set title" sid="882405047566665" type="Electron"> <param id="0" name="Title">&quot;Floflis Central - About&quot;</param> </action> <action id="-16" name="Wait" sid="286192666833254" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="388720423894542" type="UI"> <param id="0" name="ID/Class">&quot;#hostname&quot;</param> <param id="1" name="Set">Electron.GetOSHostname</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="415341770561459" type="UI"> <param id="0" name="ID/Class">&quot;#osicon&quot;</param> <param id="1" name="Set">Dictionary.Get(&quot;OSicon&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-9" name="Set value" sid="427029388405571" type="System"> <param id="0" name="Variable">LoadedAbout</param> <param id="1" name="Value">1</param> </action> </actions> </event-block> <comment>version disabled to instead use OSlogotype</comment> <event-block sid="779404018750831"> <conditions> <condition id="-14" name="Compare variable" sid="332158729210241" type="System"> <param id="0" name="Variable">LoadedAbout</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">1</param> </condition> <condition id="-4" name="Trigger once while true" sid="374229626765685" type="System" /> </conditions> <actions> <action disabled="1" id="24" name="Get elements" sid="394394345251010" type="UI"> <param id="0" name="ID/Class">&quot;#version&quot;</param> <param id="1" name="Set">sysinfo.Value(0,&quot;version&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="616276158806633" type="UI"> <param id="0" name="ID/Class">&quot;#osicon&quot;</param> <param id="1" name="Set">&quot;&lt;img title=&quot;&quot;&quot; &amp; sysinfo.Value(0,&quot;name&quot;) &amp; &quot; &quot; &amp; sysinfo.Value(0,&quot;version&quot;) &amp; &quot;&quot;&quot; width=&quot;&quot;200px&quot;&quot; src=&quot;&quot;/1/img/OSlogotype.png&quot;&quot;/&gt;&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="432847699615646" type="UI"> <param id="0" name="ID/Class">&quot;#year&quot;</param> <param id="1" name="Set">sysinfo.Value(0,&quot;
load full (100,568 bytes) →
in reply to: 0x48ee5696a9d699b2fa3130940b45c0b737be7c00ebd0b18fb8a76e902c324ccd. --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Event sheets/App sheet.xml ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2eventsheet> <!--All the 'name' attributes are ignored by Construct 2 - they are there for readability only.--> <name>App sheet</name> <events> <variable constant="0" name="LoadedAbout" sid="270706131919194" static="0" type="number">0</variable> <variable constant="0" name="currentdialog" sid="203874915509332" static="0" type="text"></variable> <variable constant="0" name="gasreadactive" sid="400535518659236" static="0" type="number">0</variable> <include>Common sheet</include> <event-block sid="806523564058118"> <conditions> <condition id="-2" name="On start of layout" sid="224016672649049" type="System" /> </conditions> <actions> <action id="30" name="Set title" sid="771631027844887" type="Electron"> <param id="0" name="Title">&quot;Floflis Central&quot;</param> </action> <action id="32" name="Maximize" sid="568563506455960" type="Electron" /> <action disabled="1" id="19" name="Include Javascript file" sid="151088756958675" type="UI"> <param id="0" name="Javascript file">&quot;jquery.min.js&quot;</param> </action> <action id="19" name="Include Javascript file" sid="518366554995020" type="UI"> <param id="0" name="Javascript file">&quot;popper.min.js&quot;</param> </action> <action id="19" name="Include Javascript file" sid="899324844801579" type="UI"> <param id="0" name="Javascript file">&quot;bootstrap.min.js&quot;</param> </action> <action id="19" name="Include Javascript file" sid="994970542104687" type="UI"> <param id="0" name="Javascript file">&quot;script.js&quot;</param> </action> <action id="19" name="Include Javascript file" sid="339003747574287" type="UI"> <param id="0" name="Javascript file">&quot;material.min.js&quot;</param> </action> <action id="2" name="Import CSS file" sid="752720606937373" type="UI"> <param id="0" name="CSS file">&quot;style.css&quot;</param> </action> <action id="2" name="Import CSS file" sid="943792650552138" type="UI"> <param id="0" name="CSS file">&quot;page-common.css&quot;</param> </action> <action id="2" name="Import CSS file" sid="289795678845114" type="UI"> <param id="0" name="CSS file">&quot;page-custom.css&quot;</param> </action> <action id="2" name="Import CSS file" sid="302918853826804" type="UI"> <param id="0" name="CSS file">&quot;app-common.css&quot;</param> </action> <action id="2" name="Import CSS file" sid="751261159356441" type="UI"> <param id="0" name="CSS file">&quot;app-custom.css&quot;</param> </action> <action disabled="1" id="2" name="Import CSS file" sid="946398050736324" type="UI"> <param id="0" name="CSS file">&quot;dark-common.css&quot;</param> </action> <action id="2" name="Import CSS file" sid="473604117283294" type="UI"> <param id="0" name="CSS file">&quot;material.min.css&quot;</param> </action> <action id="2" name="Import CSS file" sid="928703189522733" type="UI"> <param id="0" name="CSS file">&quot;robotofont.css&quot;</param> </action> <action id="2" name="Import CSS file" sid="982682542923008" type="UI"> <param id="0" name="CSS file">&quot;iconsfont.css&quot;</param> </action> <action id="3" name="Focus" sid="603720114526800" type="Electron" /> <action id="9" name="Read" sid="862797236799126" type="Electron"> <param id="0" name="Tag">&quot;&quot;</param> <param id="1" name="Path">&quot;noderequire.js&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> <action id="0" name="Request URL" sid="185355700163183" type="AJAX"> <param id="0" name="Tag">&quot;requiremodule&quot;</param> <param id="1" name="URL">&quot;noderequire.js&quot;</param> </action> <action id="9" name="Read" sid="852171897768643" type="Electron"> <param id="0" name="Tag">&quot;init&quot;</param> <param id="1" name="Path">Electron.GetAppPath &amp; &quot;/HTML/app.html&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> </actions> <sub-events> <event-block sid="811395584260083"> <conditions /> <actions> <action id="17" name="Execute Javascript" sid="305475955785663" type="Browser"> <param id="0" name="Javascript">&quot;const{exec}=require(&apos;child_process&apos;);exec(`cd scripts &amp;&amp; sh ./personalization-update.sh`,(error,stdout,stderr)=&gt;{if(error){console.log(`error:${error.message}`);return}if(stderr){console.log(`stderr:${stderr}`);return}console.log(`${stdout}`)});&quot;</param> </action> <action id="17" name="Execute Javascript" sid="712088295651692" type="Browser"> <param id="0" name="Javascript">&quot;const{exec}=require(&apos;child_process&apos;);exec(`cd scripts &amp;&amp; sh ./fullname.sh`,(error,stdout,stderr)=&gt;{if(error){console.log(`error:${error.message}`);return}if(stderr){console.log(`stderr:${stderr}`);return}console.log(`${stdout}`)});&quot;</param> </action> </actions> </event-block> <event-block disabled="1" sid="618551588230551"> <conditions> <condition id="-14" name="Compare variable" sid="593145192579196" type="System"> <param id="0" name="Variable">gasreadactive</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">1</param> </condition> <condition id="-4" name="Trigger once while true" sid="950140741817541" type="System" /> </conditions> <actions /> </event-block> </sub-events> </event-block> <event-block sid="255062159241315"> <conditions> <condition id="1" name="Is online" sid="692150408640973" type="Browser" /> <condition id="-4" name="Trigger once while true" sid="278868009689480" type="System" /> </conditions> <actions> <action id="17" name="Execute Javascript" sid="928310768818773" type="Browser"> <param id="0" name="Javascript">&quot;const{exec}=require(&apos;child_process&apos;);exec(`cd scripts &amp;&amp; sh ./tokenbalance.sh`,(error,stdout,stderr)=&gt;{if(error){console.log(`error:${error.message}`);return}if(stderr){console.log(`stderr:${stderr}`);return}console.log(`${stdout}`)});&quot;</param> </action> <action id="17" name="Execute Javascript" sid="142525736460137" type="Browser"> <param id="0" name="Javascript">&quot;const{exec}=require(&apos;child_process&apos;);exec(`cd scripts &amp;&amp; sh ./ethaddress-sybil_verify.sh`,(error,stdout,stderr)=&gt;{if(error){console.log(`error:${error.message}`);return}if(stderr){console.log(`stderr:${stderr}`);return}console.log(`${stdout}`)});&quot;</param> </action> <action id="17" name="Execute Javascript" sid="225424929564022" type="Browser"> <param id="0" name="Javascript">&quot;const{exec}=require(&apos;child_process&apos;);exec(`cd scripts &amp;&amp; sh ./ensname.sh`,(error,stdout,stderr)=&gt;{if(error){console.log(`error:${error.message}`);return}if(stderr){console.log(`stderr:${stderr}`);return}console.log(`${stdout}`)});&quot;</param> </action> <action id="17" name="Execute Javascript" sid="822172955218735" type="Browser"> <param id="0" name="Javascript">&quot;const{exec}=require(&apos;child_process&apos;);exec(`cd scripts &amp;&amp; sh ./nfts-parse.sh`,(error,stdout,stderr)=&gt;{if(error){console.log(`error:${error.message}`);return}if(stderr){console.log(`stderr:${stderr}`);return}console.log(`${stdout}`)});&quot;</param> </action> </actions> </event-block> <event-block disabled="1" sid="377943227193033"> <conditions> <condition id="1" inverted="1" name="Is online" sid="581994521111980" type="Browser" /> </conditions> <actions /> </event-block> <event-block sid="965795065046493"> <conditions> <condition id="-6" name="Every X seconds" sid="329465682899556" type="System"> <param id="0" name="Interval (seconds)">10.0</param> </condition> </conditions> <actions> <action id="17" name="Execute Javascript" sid="350985076510025" type="Browser"> <param id="0" name="Javascript">&quot;const{exec}=require(&apos;child_process&apos;);exec(`cd scripts &amp;&amp; sh ./bashc2-communication_ethgas.sh`,(error,stdout,stderr)=&gt;{if(error){console.log(`error:${error.message}`);return}if(stderr){console.log(`stderr:${stderr}`);return}console.log(`${stdout}`)});&quot;</param> </action> <action disabled="1" id="-9" name="Set value" sid="875721304574110" type="System"> <param id="0" name="Variable">gasreadactive</param> <param id="1" name="Value">1</param> </action> <action id="14" name="Log" sid="609865594548213" type="Browser"> <param id="0" name="Type">0</param> <param id="1" name="Message">&quot;Pinging bashc2-communication_ethgas.sh!&quot;</param> </action> </actions> <sub-events> <event-block sid="766335418560517"> <conditions> <condition id="6" name="Path exists" sid="222878700388035" type="Electron"> <param id="0" name="Path">&quot;/tmp/bashc2-communication_ethgas.json&quot;</param> </condition> </conditions> <actions> <action id="9" name="Read" sid="467704471139177" type="Electron"> <param id="0" name="Tag">&quot;bashc2ethgasjsonread&quot;</param> <param id="1" name="Path">&quot;/tmp/bashc2-communication_ethgas.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> <action id="14" name="Log" sid="736671083406102" type="Browser"> <param id="0" name="Type">0</param> <param id="1" name="Message">&quot;Success in finding /tmp/bashc2-communication_ethgas.json&quot;</param> </action> </actions> </event-block> <event-block disabled="1" sid="945711261194767"> <conditions> <condition id="3" name="On read success" sid="570907091113659" type="Electron"> <param id="0" name="Tag">&quot;bashc2ethgasjsonread&quot;</param> </condition> </conditions> <actions> <action id="14" name="Log" sid="674445175670822" type="Browser"> <param id="0" name="Type">0</param> <param id="1" name="Message">&quot;Success in reading bashc2-ethgasjsonread!&quot;</param> </action> <action id="55" name="Clear" sid="182024143243876" type="bashc2communication_ethgas"> <param id="0" name="Reference point">0</param> <param id="1" name="Key {n}"></param> </action> <action id="-16" name="Wait" sid="683047517593703" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="60" name="LoadJSON" sid="126102745705653" type="bashc2communication_ethgas"> <param id="0" name="JSON">Electron.LastReadAsync</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}"></param> </action> <action id="-16" name="Wait" sid="422883122008533" type="System"> <param id="0" name="Seconds">dt</param> </action> <action disabled="1" id="24" name="Get elements" sid="188221132294285" type="UI"> <param id="0" name="ID/Class">&quot;#ethgasheaderbadge&quot;</param> <param id="1" name="Set">&quot;&lt;span title=&quot;&quot;&quot; &amp; bashc2communication_ethgas.Value(0,&quot;ethgas_oneline&quot;) &amp; &quot;&quot;&quot; class=&quot;&quot;badge blue&quot;&quot;&gt;&quot; &amp; &quot;&lt;img width=&quot;&quot;25px&quot;&quot; src=&quot;&quot;&quot; &amp; bashc2communication_ethgas.Value(0,&quot;ethgas_icon&quot;) &amp; &quot;&quot;&quot;&gt; &quot; &amp; bashc2communication_ethgas.Value(0,&quot;ethgas_gasno&quot;) &amp; &quot;&lt;/span&gt;&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="783695247999259" type="UI"> <param id="0" name="ID/Class">&quot;#ethgasheaderbadge&quot;</param> <param id="1" name="Set">&quot;&lt;span&gt;Something&lt;/span&gt;&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> </actions> </event-block> </sub-events> </event-block> <event-block sid="528233469249378"> <conditions> <condition id="3" name="On read success" sid="262224863705167" type="Electron"> <param id="0" name="Tag">&quot;bashc2ethgasjsonread&quot;</param> </condition> </conditions> <actions> <action id="14" name="Log" sid="210621105114361" type="Browser"> <param id="0" name="Type">0</param> <param id="1" name="Message">&quot;Success in reading bashc2-ethgasjsonread!&quot;</param> </action> <action id="55" name="Clear" sid="273859424178949" type="bashc2communication_ethgas"> <param id="0" name="Reference point">0</param> <param id="1" name="Key {n}"></param> </action> <action id="-16" name="Wait" sid="536205293083229" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="60" name="LoadJSON" sid="247547770363311" type="bashc2communication_ethgas"> <param id="0" name="JSON">Electron.LastReadAsync</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}"></param> </action> <action id="-16" name="Wait" sid="689565705399469" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="356140903801265" type="UI"> <param id="0" name="ID/Class">&quot;#ethgasheaderbadge&quot;</param> <param id="1" name="Set">&quot;&lt;span title=&quot;&quot;&quot; &amp; bashc2communication_ethgas.Value(0,&quot;ethgas_oneline&quot;) &amp; &quot;&quot;&quot; class=&quot;&quot;badge blue&quot;&quot;&gt;&quot; &amp; &quot;&lt;img width=&quot;&quot;25px&quot;&quot; src=&quot;&quot;&quot; &amp; bashc2communication_ethgas.Value(0,&quot;ethgas_icon&quot;) &amp; &quot;&quot;&quot;&gt; &quot; &amp; bashc2communication_ethgas.Value(0,&quot;ethgas_gasno&quot;) &amp; &quot;&lt;/span&gt;&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="119912543946162" type="UI"> <param id="0" name="ID/Class">&quot;#ethgasheaderbadge&quot;</param> <param id="1" name="Set">&quot;&lt;span&gt;Something&lt;/span&gt;&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> </actions> </event-block> <event-block sid="287814634929795"> <conditions> <condition id="0" name="On completed" sid="707978036472146" type="AJAX"> <param id="0" name="Tag">&quot;requiremodule&quot;</param> </condition> </conditions> <actions> <action id="24" name="Get elements" sid="569039992441047" type="UI"> <param id="0" name="ID/Class">&quot;#electronmore&quot;</param> <param id="1" name="Set">AJAX.LastData</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="321487219332343" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="0" name="Add key" sid="146116339770244" type="Dictionary"> <param id="0" name="Key">&quot;requireok&quot;</param> <param id="1" name="Value">1</param> </action> </actions> <sub-events> <event-block sid="815742996058693"> <conditions> <condition id="0" name="Compare value" sid="976899250276164" type="Dictionary"> <param id="0" name="Key">&quot;requireok&quot;</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">1</param> </condition> <condition id="-4" name="Trigger once while true" sid="133799847544934" type="System" /> </conditions> <actions /> <sub-events> <event-block sid="594655322647805"> <conditions> <condition id="6" name="Path exists" sid="466845572524476" type="Electron"> <param id="0" name="Path">Electron.GetAppPath &amp; &quot;/HTML/setup.json&quot;</param> </condition> </conditions> <actions> <action id="9" name="Read" sid="482585686794622" type="Electron"> <param id="0" name="Tag">&quot;setup&quot;</param> <param id="1" name="Path">Electron.GetAppPath &amp; &quot;/HTML/setup/setup.html&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> <action disabled="1" id="19" name="Include Javascript file" sid="461679147832822" type="UI"> <param id="0" name="Javascript file">&quot;noderequire.js&quot;</param> </action> <action disabled="1" id="-16" name="Wait" sid="150444174959650" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="17" name="Execute Javascript" sid="290752017766952" type="Browser"> <param id="0" name="Javascript">&quot;const{exec}=require(&apos;child_process&apos;);exec(`jq -r &apos;.id&apos; /1/bulbasaur.json`,(error,stdout,stderr)=&gt;{if(error){console.log(`error:${error.message}`);return}if(stderr){console.log(`stderr:${stderr}`);return}console.log(`${stdout}`)});&quot;</param> </action> </actions> </event-block> <event-block disabled="1" sid="732332951143077"> <conditions> <condition id="-22" name="Else" sid="646029443376750" type="System" /> </conditions> <actions> <action id="9" name="Read" sid="968422829009343" type="Electron"> <param id="0" name="Tag">&quot;init&quot;</param> <param id="1" name="Path">Electron.GetAppPath &amp; &quot;/Central/app.html&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> </actions> </event-block> </sub-events> </event-block> </sub-events> </event-block> <event-group description="" sid="313311825004114" title="Setup"> <sub-events> <event-block disabled="1" sid="847035470452167"> <conditions> <condition id="0" name="On completed" sid="586288359979661" type="AJAX"> <param id="0" name="Tag">&quot;setup&quot;</param> </condition> </conditions> <actions> <action id="6" name="Set HTML" sid="156167025912050" type="UI"> <param id="0" name="Set HTML">AJAX.LastData</param> </action> <action id="-16" name="Wait" sid="310750656438271" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="0" name="Add key" sid="131675115306631" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Value">1</param> </action> </actions> </event-block> <event-block disabled="1" sid="125158669933414"> <conditions> <condition id="0" name="Compare value" sid="140250808268264" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">1</param> </condition> <condition id="-4" name="Trigger once while true" sid="854036090856306" type="System" /> </conditions> <actions> <action id="0" name="Add key" sid="780604271359120" type="Dictionary"> <param id="0" name="Key">&quot;htmlcontent&quot;</param> <param id="1" name="Value">&quot;&lt;h1 id=setupstatus&gt;&lt;i class=material-icons&gt;create_new_folder&lt;/i&gt; Creating /1 folder...&lt;/h1&gt;&lt;p&gt;&lt;i class=material-icons&gt;vpn_key&lt;/i&gt; Floflis will ask for your password.&lt;/p&gt;&lt;small&gt;🤓 If u`re nerd: root will be needed for creating tree folder on root directory.&lt;/small&gt;&quot;</param> </action> <action id="-16" name="Wait" sid="599505050396563" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="788236549064167" type="UI"> <param id="0" name="ID/Class">&quot;#setupstatus&quot;</param> <param id="1" name="Set">Dictionary.Get(&quot;htmlcontent&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="17" name="Execute Javascript" sid="528621176188028" type="Browser"> <param id="0" name="Javascript">&quot;sudo.exec(&apos;chmod 755 /1/Floflis/floflis-installer &amp;&amp; cd /1/Floflis &amp;&amp; ./floflis-installer&apos;, options, function(error, stdout, stderr){if (error) throw error;console.log(&apos;stdout: &apos; + stdout);});&quot;</param> </action> <action id="1" name="Set key" sid="685863633905319" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Value">1.1</param> </action> </actions> </event-block> <event-block disabled="1" sid="206395227259992"> <conditions> <condition id="0" name="Compare value" sid="982705922313755" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">1.1</param> </condition> </conditions> <actions /> <sub-events> <event-block disabled="1" sid="597683331719868"> <conditions> <condition id="6" name="Path exists" sid="952455497233172" type="Electron"> <param id="0" name="Path">&quot;/2&quot;</param> </condition> </conditions> <actions> <action id="24" name="Get elements" sid="195528362146828" type="UI"> <param id="0" name="ID/Class">&quot;#setupcontent&quot;</param> <param id="1" name="Set">&quot;&lt;h1 id=setupstatus&gt;&lt;i class=material-icons&gt;folder_special&lt;/i&gt; Setting permissions on /1 (tree) folder...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="1" name="Set key" sid="104353112363480" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Value">1.2</param> </action> </actions> </event-block> </sub-events> </event-block> <event-block disabled="1" sid="493635274015548"> <conditions> <condition id="0" name="Compare value" sid="624320739739425" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">1.2</param> </condition> <condition id="-4" name="Trigger once while true" sid="459274630645950" type="System" /> </conditions> <actions> <action id="0" name="Add key" sid="398933448955171" type="Dictionary"> <param id="0" name="Key">&quot;htmlcontent&quot;</param> <param id="1" name="Value">&quot;&lt;h1 id=setupstatus&gt;&lt;i class=material-icons&gt;assignment&lt;/i&gt; Testing write permissions on tree folder...&lt;/h1&gt;&lt;ol&gt;&lt;li&gt;&lt;i class=material-icons&gt;perm_device_information&lt;/i&gt; If it takes more than 30 seconds, please reboot your device and try again.&lt;/li&gt;&lt;/ol&gt;&lt;small&gt;🤓 If u&apos;re nerd: chmod will be needed on this folder. So, instead of being owned by root, tree folder will be writable by you as normal user.&lt;/small&gt;&quot;</param> </action> <action id="-16" name="Wait" sid="688280575236288" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="148811517018117" type="UI"> <param id="0" name="ID/Class">&quot;#setupcontent&quot;</param> <param id="1" name="Set">Dictionary.Get(&quot;htmlcontent&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="1" name="Set key" sid="949266855195889" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Value">1.3</param> </action> </actions> </event-block> <event-block disabled="1" sid="616566802626992"> <conditions> <condition id="0" name="Compare value" sid="419801594813277" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">1.3</param> </condition> </conditions> <actions /> <sub-events> <event-block disabled="1" sid="606090292067651"> <conditions> <condition id="6" name="Path exists" sid="630586743547246" type="Electron"> <param id="0" name="Path">&quot;/2/temp.txt&quot;</param> </condition> </conditions> <actions> <action id="1" name="Set key" sid="178211502768911" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Value">1.4</param> </action> <action id="13" name="Write" sid="151172753632482" type="Electron"> <param id="0" name="Path">&quot;/2/temp2.txt&quot;</param> <param id="1" name="Data">&quot;&quot;</param> <param id="2" name="Encoding Mode">0</param> <param id="3" name="Overwrite">0</param> </action> </actions> </event-block> </sub-events> </event-block> <event-block disabled="1" sid="190124167844903"> <conditions> <condition id="0" name="Compare value" sid="169867991156624" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">1.4</param> </condition> <condition id="-4" name="Trigger once while true" sid="402429250360207" type="System" /> </conditions> <actions> <action id="24" name="Get elements" sid="488147956857114" type="UI"> <param id="0" name="ID/Class">&quot;#setupcontent&quot;</param> <param id="1" name="Set">&quot;&lt;h1 id=setupstatus&gt;&lt;i class=material-icons&gt;create_new_folder&lt;/i&gt; Creating settings folder...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="380475557014560" type="System"> <param id="0" name="Seconds">1</param> </action> <action id="1" name="Set key" sid="624247371345370" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Value">1.5</param> </action> </actions> </event-block> <event-block disabled="1" sid="777629784169944"> <conditions> <condition id="0" name="Compare value" sid="114095919593612" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">1.5</param> </condition> <condition id="-4" name="Trigger once while true" sid="441709590174549" type="System" /> </conditions> <actions /> <sub-events> <event-block disabled="1" sid="195279635029292"> <conditions> <condition id="6" name="Path exists" sid="276731248361693" type="Electron"> <param id="0" name="Path">&quot;/1/config&quot;</param> </condition> </conditions> <actions> <action id="24" name="Get elements" sid="742497413249583" type="UI"> <param id="0" name="ID/Class">&quot;#setupstatus&quot;</param> <param id="1" name="Set">&quot;&lt;i class=material-icons&gt;folder_shared&lt;/i&gt; Getting and storing username...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="60" name="LoadJSON" sid="379837502605173" type="settingsfile"> <param id="0" name="JSON">&quot;{}&quot;</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}"></param> </action> <action id="-16" name="Wait" sid="963368812325064" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="0" name="Set New Object" sid="961549480032820" type="settingsfile"> <param id="0" name="Reference point">0</param> <param id="1" name="Key {n}">&quot;type&quot;</param> </action> <action id="-16" name="Wait" sid="253163536655478" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="0" name="Set New Object" sid="797508450522251" type="settingsfile"> <param id="0" name="Reference point">0</param> <param id="1" name="Key {n}">&quot;url&quot;</param> </action> <action id="-16" name="Wait" sid="685595211023237" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="0" name="Set New Object" sid="907556709344218" type="settingsfile"> <param id="0" name="Reference point">0</param> <param id="1" name="Key {n}">&quot;lang&quot;</param> </action> <action id="-16" name="Wait" sid="866082196286115" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="0" name="Set New Object" sid="872117438599983" type="settingsfile"> <param id="0" name="Reference point">0</param> <param id="1" name="Key {n}">&quot;title&quot;</param> </action> <action id="-16" name="Wait" sid="964877013052756" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="0" name="Set New Object" sid="446374177051079" type="settingsfile"> <param id="0" name="Reference point">0</param> <param id="1" name="Key {n}">&quot;user&quot;</param> </action> <action id="20" name="Set Value" sid="353168643632843" type="settingsfile"> <param id="0" name="Value">&quot;config/os&quot;</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}">&quot;type&quot;</param> </action> <action id="20" name="Set Value" sid="784182093209241" type="settingsfile"> <param id="0" name="Value">&quot;en-us&quot;</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}">&quot;lang&quot;</param> </action> <action id="20" name="Set Value" sid="454391475483803" type="settingsfile"> <param id="0" name="Value">Browser.ExecJS(&quot;username.sync()&quot;)</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}">&quot;user&quot;</param> </action> <action id="-16" name="Wait" sid="862735842357125" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="20" name="Set Value" sid="233466327211930" type="settingsfile"> <param id="0" name="Value">&quot;Floflis Settings - &quot; &amp; settingsfile.Value(0,&quot;user&quot;)</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}">&quot;title&quot;</param> </action> <action id="-16" name="Wait" sid="286868031407675" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="0" name="Write" sid="157333421193540" type="Electron"> <param id="0" name="Tag">&quot;settsfile&quot;</param> <param id="1" name="Path">&quot;/2/config/dat.json&quot;</param> <param id="2" name="Data">settingsfile.AsJson(0)</param> <param id="3" name="Encoding Mode">0</param> </action> </actions> </event-block> </sub-events> </event-block> <event-block disabled="1" sid="528859567057615"> <conditions> <condition id="1" name="On write fail" sid="570571614852974" type="Electron"> <param id="0" name="Tag">&quot;settsfile&quot;</param> </condition> </conditions> <actions> <action id="24" name="Get elements" sid="353611515705914" type="UI"> <param id="0" name="ID/Class">&quot;#setupcontent&quot;</param> <param id="1" name="Set">&quot;&lt;h1 id=setupstatus&gt;&lt;i class=material-icons&gt;warning&lt;/i&gt; Couldn&apos;t write settings file. Please reboot your device and try again.&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> </actions> </event-block> <event-block disabled="1" sid="181344953441253"> <conditions> <condition id="0" name="On write success" sid="649484221165279" type="Electron"> <param id="0" name="Tag">&quot;settsfile&quot;</param> </condition> </conditions> <actions> <action id="1" name="Set key" sid="103803751836853" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Value">2</param> </action> <action id="0" name="Request URL" sid="821270733705219" type="AJAX"> <param id="0" name="Tag">&quot;step2&quot;</param> <param id="1" name="URL">&quot;step2.html&quot;</param> </action> </actions> </event-block> <event-block disabled="1" sid="159982809586331"> <conditions> <condition id="0" name="On completed" sid="193060047692128" type="AJAX"> <param id="0" name="Tag">&quot;step2&quot;</param> </condition> </conditions> <actions> <action id="24" name="Get elements" sid="716971424735350" type="UI"> <param id="0" name="ID/Class">&quot;#setupstepper&quot;</param> <param id="1" name="Set">AJAX.LastData</param> <param id="2" name="Append">&quot;&quot;</param> </action> </actions> </event-block> <event-block disabled="1" sid="890869117514764"> <conditions> <condition id="0" name="Compare value" sid="494028220703011" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">2</param> </condition> <condition id="-4" name="Trigger once while true" sid="368314627561968" type="System" /> </conditions> <actions> <action id="24" name="Get elements" sid="462924184826373" type="UI"> <param id="0" name="ID/Class">&quot;#setupstatus&quot;</param> <param id="1" name="Set">&quot;&lt;i class=material-icons&gt;create_new_folder&lt;/i&gt; Creating sys folder...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="17" name="Create folder" sid="536324561361811" type="Electron"> <param id="0" name="Path">&quot;/2/Floflis&quot;</param> </action> <action id="-16" name="Wait" sid="108075240846973" type="System"> <param id="0" name="Seconds">1</param> </action> <action id="1" name="Set key" sid="343503569496854" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Value">2.1</param> </action> </actions> </event-block> <event-block disabled="1" sid="133656293383741"> <conditions> <condition id="0" name="Compare value" sid="964932397794253" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">2.1</param> </condition> </conditions> <actions /> <sub-events> <event-block disabled="1" sid="220525590344629"> <conditions> <condition id="6" name="Path exists" sid="675629131004302" type="Electron"> <param id="0" name="Path">&quot;/2/Floflis&quot;</param> </condition> </conditions> <actions> <action id="1" name="Set key" sid="726577351507515" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Value">2.2</param> </action> </actions> </event-block> </sub-events> </event-block> </sub-events> </event-group> <event-block disabled="1" sid="695234071659068"> <conditions> <condition id="0" name="Compare value" sid="794782444656395" type="Dictionary"> <param id="0" name="Key">&quot;setup-step&quot;</param> <param id="1" name="Comparison">0</param> <param id="2" name="Value">2.2</param> </condition> <condition id="-4" name="Trigger once while true" sid="708007261759730" type="System" /> </conditions> <actions> <action id="24" name="Get elements" sid="771091540289885" type="UI"> <param id="0" name="ID/Class">&quot;#setupstatus&quot;</param> <param id="1" name="Set">&quot;&lt;i class=material-icons&gt;save_alt&lt;/i&gt; Extracting data to sys folder...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="40" name="Show dev tools" sid="419811625683427" type="Electron" /> <action disabled="1" id="17" name="Execute Javascript" sid="330437580703426" type="Browser"> <param id="0" name="Javascript">&quot;var unzipper = new DecompressZip(floflis.zip) unzipper.extract({path: &apos;/2/Floflis&apos;,});&quot;</param> </action> </actions> </event-block> <event-block disabled="1" sid="385990972200190"> <conditions> <condition id="0" name="On completed" sid="458353562140599" type="AJAX"> <param id="0" name="Tag">&quot;init&quot;</param> </condition> </conditions> <actions /> </event-block> <event-block sid="328075382242918"> <conditions> <condition id="3" name="On read success" sid="206017059598492" type="Electron"> <param id="0" name="Tag">&quot;init&quot;</param> </condition> </conditions> <actions> <action id="6" name="Set HTML" sid="208140225315479" type="UI"> <param id="0" name="Set HTML">Electron.LastReadAsync</param> </action> <action id="-16" name="Wait" sid="452367930864856" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="9" name="Read" sid="491998598005987" type="Electron"> <param id="0" name="Tag">&quot;home&quot;</param> <param id="1" name="Path">Electron.GetAppPath &amp; &quot;/HTML/home.html&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> </actions> </event-block> <event-block disabled="1" sid="570437029484984"> <conditions /> <actions> <action id="9" name="Read" sid="137306239782012" type="Electron"> <param id="0" name="Tag">&quot;home&quot;</param> <param id="1" name="Path">Electron.GetAppPath &amp; &quot;/HTML/home.html&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> </actions> </event-block> <event-block sid="165718121899390"> <conditions> <condition id="3" name="On read success" sid="868825420245041" type="Electron"> <param id="0" name="Tag">&quot;home&quot;</param> </condition> </conditions> <actions> <action id="24" name="Get elements" sid="909469975111192" type="UI"> <param id="0" name="ID/Class">&quot;#nav-home&quot;</param> <param id="1" name="Set">Electron.LastReadAsync</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="332670767850278" type="UI"> <param id="0" name="ID/Class">&quot;#nav-profile&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="857332665084762" type="UI"> <param id="0" name="ID/Class">&quot;#nav-playwith&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="166060522282834" type="UI"> <param id="0" name="ID/Class">&quot;#nav-personalization&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="152239138209834" type="UI"> <param id="0" name="ID/Class">&quot;#nav-about&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="196114118579901" type="UI"> <param id="0" name="ID/Class">&quot;#nav-moresettings&quot;</param> <param id="1" name="Set">&quot;...&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="30" name="Set title" sid="488823345182267" type="Electron"> <param id="0" name="Title">&quot;Floflis Central - Home&quot;</param> </action> <action id="-16" name="Wait" sid="259161177564151" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="512124103606351" type="UI"> <param id="0" name="ID/Class">&quot;#hostname&quot;</param> <param id="1" name="Set">&quot;&lt;i class=material-icons&gt;devices&lt;/i&gt; &quot; &amp; Electron.GetOSHostname</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="24" name="Get elements" sid="828155125456504" type="UI"> <param id="0" name="ID/Class">&quot;#osarch&quot;</param> <param id="1" name="Set">Electron.GetOSArch</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="803565617865849" type="System"> <param id="0" name="Seconds">dt</param> </action> <action disabled="1" id="9" name="Read" sid="437110018315917" type="Electron"> <param id="0" name="Tag">&quot;sysinfo&quot;</param> <param id="1" name="Path">Electron.GetAppPath &amp; &quot;/HTML/floflis.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> <action id="9" name="Read" sid="940414773713857" type="Electron"> <param id="0" name="Tag">&quot;sysinfo&quot;</param> <param id="1" name="Path">&quot;/1/Floflis/system/os.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> <action id="-16" name="Wait" sid="539268352996645" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="9" name="Read" sid="952300222970365" type="Electron"> <param id="0" name="Tag">&quot;&quot;</param> <param id="1" name="Path">Electron.GetAppPath &amp; &quot;/HTML/icon.png&quot;</param> <param id="2" name="Encoding">&quot;base64&quot;</param> </action> <action id="0" name="Request URL" sid="151099340431140" type="AJAX"> <param id="0" name="Tag">&quot;iconajx&quot;</param> <param id="1" name="URL">Electron.GetAppPath &amp; &quot;/HTML/icon.png&quot;</param> </action> <action id="24" name="Get elements" sid="489372006931318" type="UI"> <param id="0" name="ID/Class">&quot;#showusername&quot;</param> <param id="1" name="Set">&quot;🐧&quot; &amp; Browser.ExecJS(&quot;username.sync()&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action disabled="1" id="24" name="Get elements" sid="140815094522019" type="UI"> <param id="0" name="ID/Class">&quot;#showusername&quot;</param> <param id="1" name="Set">&quot;@&quot; &amp; Browser.ExecJS(&quot;fullname.sync()&quot;)</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="577626938168594" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="461419287689159" type="UI"> <param id="0" name="ID/Class">&quot;#usrpic&quot;</param> <param id="1" name="Set"> &quot;&lt;img onclick=C2(&quot;&quot;userwindow-show&quot;&quot;); width=&quot;&quot;150px&apos;&quot;&quot; style=&quot;&quot;border-radius:50%&quot;&quot; src=&quot;&quot;file://&quot; &amp; &quot;/home/&quot; &amp; Browser.ExecJS(&quot;username.sync()&quot;) &amp; &quot;/.face&quot; &amp; &quot;&quot;&quot; title=&quot;&quot;&quot; &amp; &quot;Click to change &quot; &amp; Browser.ExecJS(&quot;username.sync()&quot;) &amp; &quot;&apos;s avatar, password, name, etc.&quot; &amp; &quot;&quot;&quot; class=&quot;&quot;linkish&quot;&quot;/&gt;&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> <action id="-16" name="Wait" sid="561032589970224" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="9" name="Read" sid="167108684821221" type="Electron"> <param id="0" name="Tag">&quot;personalizationjsonread-home&quot;</param> <param id="1" name="Path">&quot;/1/config/personalization.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> <action id="-16" name="Wait" sid="457374691546515" type="System"> <param id="0" name="Seconds">dt</param> </action> <action disabled="1" id="9" name="Read" sid="522883484977186" type="Electron"> <param id="0" name="Tag">&quot;userjsonread&quot;</param> <param id="1" name="Path">&quot;/1/config/user.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> <action id="9" name="Read" sid="209876697212368" type="Electron"> <param id="0" name="Tag">&quot;userjsonread&quot;</param> <param id="1" name="Path">&quot;/1/config/user.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> </actions> </event-block> <event-block disabled="1" sid="562627075855713"> <conditions> <condition id="3" name="On read success" sid="142350356637051" type="Electron"> <param id="0" name="Tag">&quot;userjsonread&quot;</param> </condition> </conditions> <actions /> </event-block> <comment>This also enables other tabs to get the background:</comment> <event-block sid="421714150032343"> <conditions> <condition id="3" name="On read success" sid="540453223388925" type="Electron"> <param id="0" name="Tag">&quot;personalizationjsonread-home&quot;</param> </condition> </conditions> <actions> <action id="60" name="LoadJSON" sid="605824678726658" type="personalization"> <param id="0" name="JSON">Electron.LastReadAsync</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}"></param> </action> <action id="-16" name="Wait" sid="265034153811652" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="24" name="Get elements" sid="867761485738989" type="UI"> <param id="0" name="ID/Class">&quot;#getbg-home&quot;</param> <param id="1" name="Set">&quot;&lt;img class=&quot;&quot;&quot;&quot; src=&quot;&quot;&quot; &amp; personalization.Value(0,&quot;background&quot;) &amp; &quot;&quot;&quot; style=&quot;&quot;background:#3EB7E5;height:400px&quot;&quot;&gt;&quot;</param> <param id="2" name="Append">&quot;&quot;</param> </action> </actions> </event-block> <event-block sid="335189631829286"> <conditions> <condition id="3" name="On read success" sid="126074047798100" type="Electron"> <param id="0" name="Tag">&quot;userjsonread&quot;</param> </condition> </conditions> <actions> <action id="60" name="LoadJSON" sid="913388540407790" type="user"> <param id="0" name="JSON">Electron.LastReadAsync</param> <param id="1" name="Reference point">0</param> <param id="2" name="Key {n}"></param> </action> <action id="-16" name="Wait" sid="477795917543009" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="14" name="Log" sid="589494777084046" type="Browser"> <param id="0" name="Type">0</param> <param id="1" name="Message">&quot;Name: &quot; &amp; user.Value(0,&quot;name&quot;)</param> </action> <action id="14" name="Log" sid="586015175659133" type="Browser"> <param id="0" name="Type">0</param> <param id="1" name="Message">&quot;ETH: &quot; &amp; user.Value(0,&quot;eth&quot;)</param> </action> <action id="14" name="Log" sid="577562335041004" type="Browser"> <param id="0" name="Type">0</param> <param id="1" name="Message">&quot;Twitter: &quot; &amp; user.Value(0,&quot;sybiltwitter&quot;)</param> </action> <action id="-16" name="Wait" sid="622037022299415" type="System"> <param id="0" name="Seconds">dt</param> </action> <action id="9" name="Read" sid="989445045641562" type="Electron"> <param id="0" name="Tag">&quot;tokensjsonread&quot;</param> <param id="1" name="Path">&quot;/1/config/tokens.json&quot;</param> <param id="2" name="Encoding">&quot;utf8&quot;</param> </action> </actions> <sub-events> <event-block sid="838755837461195"> <conditions> <condition id="-8" name="Compare two values" sid="157269227822978" type="System"> <param id="0" name="First value">Electron.WindowTitle</param> <param id="1" name="Comparison">0</param> <param id="2" name="Second value">&quot;Floflis Central - Profile&quot;</param> </condition> <condition id="-8" name="Compare two values" sid="446747890472406" type="System"> <param id="0" name="First value">user.Value(0,&quot;sybiltwitter&quot;)</param> <param id="1" name="Comparison">1</param> <param id="2" name="Second value">&quot;no&quot;</param> </condition> <condition id="-4" name="Trigger once while true" sid="120521964857533" type="System" /> </conditions> <actions> <action id="24" name="Get elements" sid="730888879232851" type="UI"> <param id="0" name="ID/Class">&quot;#showtwitterhandle&quot;</param> <param id="1" name="Set">&quot;&lt;img width=&quot;&quot;16px&quot;&quot; src=&quot;&quot;twitter-logo-black.svg&quot;&quot;&gt; &quot; &amp; &quot;&lt;span&gt;@&quot; &amp; user.Value(0,&quot;sybiltwitter&quot;) &amp; &quot;&lt;/span&gt;&quot;</param>
load full (83,725 bytes) →
https://github.com/Floflis/Floflis-Central --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/README.md ----> --------------------------------------------------------------------------------------------------------------------------- # Floflis Central More than a settings aggregator; its a dashboard for your web3 profile. ![Screenshot](screenshot.png) ![Screenshot](screenshot2.png) --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/README.md --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/manifest.webapp ----> --------------------------------------------------------------------------------------------------------------------------- { "id": "central", "application": "app", "name": "Floflis Central", "version": "0.22.3.15", "description": "", "icon": "icon.png", "linux_icon": "", "author": "Floflis", "url": "index.html", "ime_default_softkey_bar": true, "launch_path": "/index.html", "type": "privileged", "icons": { "56": "/notes/icon_56.png", "_comment1": "<< KaiOS icon", "60": "/notes/icon_60.png", "64": "/notes/icon_64.png", "84": "/notes/icon_84.png", "_comment2": "<< KaiOS icon", "112": "/notes/icon_112.png", "_comment3": "<< KaiOS icon", "128": "/notes/icon_128.png", "512": "/notes/icon_512.png" }, "developer": { "name": "Floflis", "url": "https://github.com/Floflis" }, "locales": { "en-US": { "name": "Floflis Central", "description": "" } }, "floflispackager": { "exportsfolder": "c2export" }, "default_locale": "en-US", "width": "700", "height": "450", "cursor": true } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/manifest.webapp --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/tasks.txt ----> --------------------------------------------------------------------------------------------------------------------------- Attempt 32: - credits: (c) 2019-2023 Floflis Central - If Cinnamon avatar isn't found, display generic (/media/daniell/UBUNTU1/avatar.png) - If Cinnamon, disable the "Change lockscreen bg" (but show background on it) card and "Change both" button. On other DEs, tell it will be implemented - Put "SOON" at tabs such as Friends and Inventory - Build from source (Floflis Packager, c2export and its Central/HTML and scripts) - Display the type of Trophies and individual count - Display the type of Paintings and individual count - Display the type of Pets and individual count - init script (installs shared libs, creates c2export and its files, clones Central (HTML) and scripts) - if first use, require user to read Terms of Use (can be removed of token distribution according to internal criteria. But existing FLOF tokens you own can't be taken; they're yours) Attempt 34: - If no Internet, don't display 0 tokens if already non-zero, but tell balance outdated - Profile tab: remove "Estimated total USD you hold" from card - If user have no ETH address/fullname in user.json, display error (validation) - Detect if it is running from ISO (live), and change features accordingly (remove user features) - tubby cats PFP - get rid of sh<>c2 json communication (bashc2-communication_ethgas.sh) - scripts will use external functions (tokenbalance-others.sh, nfts-parse.sh) in their own folders (include tokenbalance.sh) - independence for fullname.sh - Display estimated total USD on every token count - "Copy to clipboard" button at ETH address and ENS name - Inventory: display amount of Axies in "Pets" tab https://etherscan.io/readContract?m=normal&a=0xf5b0a3efb8e8e4c201e2a935f110eaaf3ffecb8d&v=0xf5b0a3efb8e8e4c201e2a935f110eaaf3ffecb8d#readCollapse14 - https://api.axie.technology/getaxies/99228 - https://axie.zone/func/pixelate.php?axie_id=99228 (50px) ethereal contract call --contract=0xf5b0a3efb8e8e4c201e2a935f110eaaf3ffecb8d --abi=abi-axie.json --call='tokenURI(142388)' --from=0xDDfC2e10702d8A781727A34D83B3bb3CA94a3E91 - Inventory: tabs: Backgrounds (soon, subscribe via Alerts), (Metaverse Stuff: Lands (axie, decentraland, the sandbox, cryptovoxels), Items (axie), Paintings, Wearables (Cryptovoxels, Decentraland), Pets) https://etherscan.io/token/0x1b6b3026b7f5531086f3b8e6cc31c6564bbe2849#readContract tokenURI - Inventory: parse and display every ExpansionPunks in "PFPs/Avatars" tab https://etherscan.io/readContract?m=normal&a=0x0d0167a823c6619d430b1a96ad85b888bcf97c37&v=0x0d0167a823c6619d430b1a96ad85b888bcf97c37#readCollapse26 https://etherscan.io/readContract?m=normal&a=0x0d0167a823c6619d430b1a96ad85b888bcf97c37&v=0x0d0167a823c6619d430b1a96ad85b888bcf97c37#readCollapse23 ethereal contract call --contract=0x0d0167a823c6619d430b1a96ad85b888bcf97c37 --abi=universal-abi.json --call='walletOfOwner(0x38d45e8e519cb3c72f9f890dce4a5dbb0608f8a3)' --from=0xDDfC2e10702d8A781727A34D83B3bb3CA94a3E91 (get every item before spaces) - Inventory: display amount of ExpansionPunks in "PFPs/Avatars" tab https://etherscan.io/readContract?m=normal&a=0x0d0167a823c6619d430b1a96ad85b888bcf97c37&v=0x0d0167a823c6619d430b1a96ad85b888bcf97c37#readCollapse3 - Inventory: display Rockstars of EPNS (image, metadata, everything as its one NFT per person) in "Trophies" tab https://etherscan.io/readContract?m=normal&a=0x3f8c2152b79276b78315caf66ccf951780580a8a&v=0x3f8c2152b79276b78315caf66ccf951780580a8a#readCollapse11 - Inventory: display amount of ENS domains in "Domains" tab https://etherscan.io/readContract?m=normal&a=0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85&v=0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85#readCollapse3 - Inventory: display amount of CryptoKitties in "Pets" tab https://etherscan.io/readContract?m=normal&a=0x06012c8cf97bead5deae237070f9587f8e7a266d&v=0x06012c8cf97bead5deae237070f9587f8e7a266d#readCollapse20 ERC-1155 which needs better understanding: - Rarible https://etherscan.io/token/0xd07dc4262bcdbf85190c01c996b4c06a461d2430 - Cryptovoxel Wearables https://etherscan.io/token/0xa58b5224e2fd94020cb2837231b2b0e4247301a6 - support for tubby toys and unisocks - support for foundation arts - Home tab: button to enter user profile - click to open user's Twitter profile (Firedoge) - click to open user's cheers profile (Firedoge) - Wallet: displays tokens' name, and click to open their educational site (Firedoge) - Profile > Wallet: also mix token count from their wrapped version (for example, wrapped Ethereum at Ethereum) - Profile > Wallet: FLOF token frm. sgst un and lp, then count tokens - detect and store default background, and Personalization tab have option to restore default background - user's fullname: username as hover/title - frameless window (implement Framlr) - pack.sh: use same script as Floflis Soil to install global node modules Attempt 35: - at Personalization tab, simulate desktop icons (get from icon theme) and lockscreen (to update: simulate according to the DE) - Support GNOME (avatars, settings app) - Prevent conflicts between having different avatars on different DEs (by detecting the running DE) - Support KDE (avatars, settings app) - Taskbar settings tab: display label in Explore button, display labels in openned apps, auto-hide Attempt 36: - New tab: Updates (display "Powered by Web3Updater") - about's up-to-date: lnksh, click and open Updates Attempt 37: - Sounds; more sounds settings - Backgrounds tab: pre-picked backgrounds before new implementations; more backgrounds settings Attempt 38: - Themes tab: "Window borders", "Icons", "Controls", "Mouse Pointer", "Desktop"; install new themes, from UniStore (also fetch from spices repos) - Account details tab: Picture, Name, Password - Gadgets/Widgets/Desklets tab (also get from UniStore and Spices) - Extensions tab (also get from UniStore and Spices) - Preferred applications tab - Windows tab (beauty option to choose window buttons position, also asked on first boot tour) - Startup Applications tab - Bluetooth - Disks (opens app) - Printers (opens app) v2: use https://docs.etherscan.io/getting-started/viewing-api-usage-statistics to get/display all tokens/NFTs/semifungibles G:\Users\Daniell\Desktop\Floflis\Floflis Settings\c2export\ --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/tasks.txt --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/get-c2-proj-addons.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e #addonIDprepare="$(cat *.caproj | grep -oE ".?version[^<>]*>[^<>]+" | cut -d'>' -f2 | head -6 | tail -1)" addonIDprepare="$(cat *.caproj | grep -oE ".?version[^<>]*>[^<>]+" | cut -d'>' -f2 | sed -n '6 p')" #loopmile="6" #loopmile="5" #loopmile="6" loopmile="5" #until [[ "$addonIDprepare" = "" ]] #until [[ "$addonIDprepare" = "null" ]] until [[ "$addonIDprepare" = "" ]] do #echo "Test: $addonIDprepare" loopmile="$(($loopmile + 1))" #echo "Get: $addonIDprepare" #echo "Current loop: $loopmile" #if [[ "$addonIDprepare" != "" ]]; then echo "Current loop: $loopmile"; else echo "Stopped at loop: $loopmile"; fi #if [[ "$addonIDprepare" = "" ]]; then echo "Current loop: $loopmile"; else echo "Stopped at loop: $loopmile"; fi #echo "Get: $addonIDprepare" #echo "-" addonIDprepare="$(cat *.caproj | grep -oE ".?version[^<>]*>[^<>]+" | cut -d'>' -f2 | sed -n "$loopmile p")" #if [[ "$addonIDprepare" = "" ]]; then echo "Current loop: $loopmile"; else echo "Stopped at loop: $loopmile"; fi if [[ "$addonIDprepare" != "" ]]; then echo "Current loop: $loopmile"; else echo "Stopped at loop: $loopmile"; fi #echo "Get: $addonIDprepare" if [[ "$addonIDprepare" != "" ]]; then echo "Get: $addonIDprepare";echo "-"; fi #echo "-" #echo "$addonIDprepare" done loopmile="0" --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/get-c2-proj-addons.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Floflis Central.uistate.xml ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2uistate> <!--This is a UI state file - its content describes the user interface settings when the project was last open. It is entirely optional and the project will load without it. If you are placing the project under source control, you probably do not want to add any .uistate.xml files to the repository.--> <configurations> <active> <configuration name="HTML5" /> </active> <display name="HTML5" /> </configurations> <open-tabs> <layout order="0">Splash</layout> <layout order="2">App</layout> <event-sheet order="1">Splash sheet</event-sheet> <event-sheet active="1" order="3">App sheet</event-sheet> <event-sheet order="4">Common sheet</event-sheet> </open-tabs> <properties> <property expanded="1" name="About" /> <property expanded="1" name="Project settings" /> <property expanded="0" name="Window Size" /> <property expanded="1" name="Configuration Settings" /> </properties> <families-expanded root="1" /> <folders-expanded> <folder expanded="1" path="object-folder/" /> <folder expanded="1" path="object-folder/bashc2-communication/" /> <folder expanded="1" path="layout-folder/" /> <folder expanded="1" path="event-folder/" /> <folder expanded="1" path="file-folder/" /> <folder expanded="1" path="sound-folder/" /> <folder expanded="1" path="music-folder/" /> <folder expanded="1" path="file-folder/Setup/Compressed/" /> <folder expanded="0" path="file-folder/Icons/" /> <folder expanded="1" path="file-folder/Setup/" /> </folders-expanded> </c2uistate> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Floflis Central.uistate.xml --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Floflis Central.caproj ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2project> <name>Floflis Central</name> <description></description> <version>0.22.3.15</version> <author>Floflis</author> <author-email></author-email> <author-website>https://github.com/Floflis</author-website> <app-id>com.floflis.central</app-id> <unique-id>1a0mdkjfspcoo</unique-id> <saved-with-version>24400</saved-with-version> <used-plugins> <plugin author="Scirra" id="AJAX" version="1">AJAX</plugin> <plugin author="Scirra" id="Browser" version="1">Browser</plugin> <plugin author="Scirra" id="Dictionary" version="1">Dictionary</plugin> <plugin author="PlayLive" id="HTML_iFrame" version="1.419999957">HTML | iFrame</plugin> <plugin author="Yann Granjon" id="JSON" version="1.200000048">JSON</plugin> <plugin author="Scirra" id="Keyboard" version="1">Keyboard</plugin> <plugin author="Armaldio" id="armaldio_electron" version="1">Electron</plugin> <plugin author="Armaldio" id="nfc" version="1">NFC</plugin> </used-plugins> <used-behaviors /> <used-effects /> <configurations> <configuration exporter-descname="HTML5" exporter-id="html5" name="HTML5" /> </configurations> <window-size> <width>854</width> <height>480</height> </window-size> <pixel-rounding>0</pixel-rounding> <preview-effects>1</preview-effects> <first-layout>Splash</first-layout> <use-loader-layout>1</use-loader-layout> <configuration-settings> <prop name="Clear background">Yes</prop> <prop name="Downscaling">Medium quality</prop> <prop name="Enable WebGL">On</prop> <prop name="Fullscreen in browser">Letterbox scale</prop> <prop name="Fullscreen scaling">High quality</prop> <prop name="Loader style">Construct 2 splash</prop> <prop name="Orientations">Any</prop> <prop name="Pause on unfocus">No</prop> <prop name="Physics engine">Box2D asm.js</prop> <prop name="Preload sounds">Yes</prop> <prop name="Preview browser">Custom</prop> <prop name="Sampling">Linear</prop> <prop name="Use high-DPI display">Yes</prop> </configuration-settings> <object-folder> <object-folder name="bashc2-communication"> <object-type global="1" name="bashc2communication_ethgas" sid="909341559726196"> <plugin id="JSON" /> </object-type> </object-folder> <object-type name="UI" sid="538434545119300"> <plugin id="HTML_iFrame" /> </object-type> <object-type name="AJAX" sid="837044189710854"> <plugin id="AJAX" /> </object-type> <object-type name="Browser" sid="891593712766923"> <plugin id="Browser" /> </object-type> <object-type name="Electron" sid="117654457792398"> <plugin id="armaldio_electron" /> </object-type> <object-type name="Splash" sid="642900505670895"> <plugin id="HTML_iFrame" /> </object-type> <object-type name="Keyboard" sid="630822245513938"> <plugin id="Keyboard" /> </object-type> <object-type global="1" name="sysinfo" sid="502989363564829"> <plugin id="JSON" /> </object-type> <object-type name="NFC" sid="506608621701179"> <plugin id="nfc" /> </object-type> <object-type global="1" name="Dictionary" sid="124561956691048"> <plugin id="Dictionary" /> </object-type> <object-type global="1" name="settingsfile" sid="896115479558149"> <plugin id="JSON" /> </object-type> <object-type global="1" name="tokens" sid="349311126379705"> <plugin id="JSON" /> </object-type> <object-type global="1" name="personalization" sid="386309080763964"> <plugin id="JSON" /> </object-type> <object-type global="1" name="user" sid="857050701816113"> <plugin id="JSON" /> </object-type> <object-type global="1" name="nfts" sid="971080275345571"> <plugin id="JSON" /> </object-type> </object-folder> <families /> <layout-folder> <layout>App.xml</layout> <layout>Splash.xml</layout> </layout-folder> <event-folder> <event-sheet>App sheet.xml</event-sheet> <event-sheet>Common sheet.xml</event-sheet> <event-sheet>Splash sheet.xml</event-sheet> </event-folder> <global-instances> <global-instance type="AJAX" uid="1" /> <global-instance type="Browser" uid="2" /> <global-instance type="Electron" uid="5" /> <global-instance type="Keyboard" uid="3" /> <global-instance type="NFC" uid="7" /> </global-instances> <sounds-folder /> <music-folder /> <files-folder> <file-folder name="Icons"> <file name="icon-16.png" /> <file name="icon-32.png" /> <file name="icon-114.png" /> <file name="icon-128.png" /> <file name="icon-256.png" /> <file name="loading-logo.png" /> </file-folder> <file-folder name="Setup"> <file-folder name="Compressed"> <file name="Floflis.zip" /> </file-folder> <file name="step2.html" /> <file name="New folder.html" /> <file name="step4.html" /> <file name="step5.html" /> <file name="step6.html" /> <file name="step7.html" /> </file-folder> <file name="bootstrap.min.js" /> <file name="font.eot" /> <file name="font.ttf" /> <file name="font.woff" /> <file name="font.woff2" /> <file name="iconsfont.css" /> <file name="material.min.css" /> <file name="material.min.js" /> <file name="page-custom.css" /> <file name="popper.min.js" /> <file name="roboto-cyrillic.woff2" /> <file name="roboto-cyrillicext.woff2" /> <file name="robotofont.css" /> <file name="roboto-greek.woff2" /> <file name="roboto-greekext.woff2" /> <file name="roboto-latin.woff2" /> <file name="roboto-latinext.woff2" /> <file name="roboto-vietnamese.woff2" /> <file name="script.js" /> <file name="icon.png" /> <file name="style.css" /> <file name="loading.gif" /> <file name="init.html" /> <file name="page-common.css" /> <file name="app-common.css" /> <file name="ipfs.png" /> <file name="jquery.min.js" /> <file name="logotype_smallball.png" /> <file name="noderequire.js" /> <file name="eth-diamond-glyph.png" /> <file name="twitter-logo-black.svg" /> <file name="manatoken.svg" /> <file name="ethtoken.svg" /> <file name="sandtoken.svg" /> <file name="gametoken.png" /> <file name="platoken.png" /> <file name="axstoken.svg" /> <file name="daitoken.svg" /> <file name="gnotoken.svg" /> <file name="slptoken.svg" /> <file name="usdctoken.svg" /> </files-folder> </c2project> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Floflis Central.caproj --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Layouts/App.uistate.xml ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2uistate> <!--This is a UI state file - its content describes the user interface settings when the layout was last open. It is entirely optional and the project will load without it. If you are placing the project under source control, you probably do not want to add any .uistate.xml files to the repository.--> <camera> <position-x>427</position-x> <position-y>240</position-y> <position-z>100</position-z> <lookat-x>427</lookat-x> <lookat-y>240</lookat-y> <lookat-z>0</lookat-z> </camera> <snap-to-grid>0</snap-to-grid> <show-grid>0</show-grid> <snap-width>32</snap-width> <snap-height>32</snap-height> <show-collision-polys>0</show-collision-polys> <translucent-inactive-layers>0</translucent-inactive-layers> <properties> <property expanded="1" name="Layout properties" /> <property expanded="0" name="Layout Size" /> <property expanded="0" name="Margins" /> <property expanded="1" name="Effects" /> </properties> <active-layer name="Layer 0" /> <layers> <layer locked="0" name="Layer 0" parallax-in-editor="0" visible="1" /> </layers> </c2uistate> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Layouts/App.uistate.xml --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Layouts/App.xml ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2layout> <name>App</name> <sid>945267995237150</sid> <event-sheet>App sheet</event-sheet> <size> <width>854</width> <height>480</height> </size> <margins> <horizontal>500</horizontal> <vertical>500</vertical> </margins> <unbounded-scrolling>0</unbounded-scrolling> <layers> <layer name="Layer 0" sid="321161231435398"> <initially-visible>1</initially-visible> <background-color>255,255,255</background-color> <transparent>0</transparent> <parallax> <x>1</x> <y>1</y> </parallax> <zoom-rate>1</zoom-rate> <opacity>1</opacity> <force-own-texture>0</force-own-texture> <global>0</global> <use-render-cells>0</use-render-cells> <blend-mode>0</blend-mode> <effect-fallback>0</effect-fallback> <instances> <instance type="UI" uid="0"> <properties> <id-optional>html</id-optional> <class-optional></class-optional> <initial-visibility>Visible</initial-visibility> <tooltip></tooltip> <background></background> <border></border> <scroll>Auto</scroll> <object>HTML</object> <iframe></iframe> <url></url> <html></html> <code></code> <color></color> <text-selectable>Yes</text-selectable> <auto-font-size>Default</auto-font-size> <import></import> <css-import></css-import> <javascript-import></javascript-import> </properties> <blend-mode>0</blend-mode> <effect-fallback>0</effect-fallback> <world> <x>1</x> <y>1</y> <z>0</z> <width>854</width> <height>480</height> <depth>0</depth> <hotspotX>0</hotspotX> <hotspotY>0</hotspotY> <angle>0</angle> </world> </instance> </instances> <effects /> </layer> </layers> <nonworld-instances> <instance type="sysinfo" uid="4" /> <instance type="Dictionary" uid="8" /> <instance type="settingsfile" uid="9" /> <instance type="tokens" uid="10" /> <instance type="personalization" uid="11" /> <instance type="user" uid="12" /> <instance type="nfts" uid="13" /> <instance type="bashc2communication_ethgas" uid="14" /> </nonworld-instances> <effects /> </c2layout> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Layouts/App.xml --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Layouts/Splash.uistate.xml ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2uistate> <!--This is a UI state file - its content describes the user interface settings when the layout was last open. It is entirely optional and the project will load without it. If you are placing the project under source control, you probably do not want to add any .uistate.xml files to the repository.--> <camera> <position-x>427</position-x> <position-y>240</position-y> <position-z>100</position-z> <lookat-x>427</lookat-x> <lookat-y>240</lookat-y> <lookat-z>0</lookat-z> </camera> <snap-to-grid>0</snap-to-grid> <show-grid>0</show-grid> <snap-width>32</snap-width> <snap-height>32</snap-height> <show-collision-polys>0</show-collision-polys> <translucent-inactive-layers>0</translucent-inactive-layers> <properties> <property expanded="1" name="Layout properties" /> <property expanded="0" name="Layout Size" /> <property expanded="0" name="Margins" /> <property expanded="1" name="Effects" /> </properties> <active-layer name="Layer 0" /> <layers> <layer locked="0" name="Layer 0" parallax-in-editor="0" visible="1" /> </layers> </c2uistate> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Layouts/Splash.uistate.xml --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Splash.xml ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2layout> <name>Splash</name> <sid>663750398400722</sid> <event-sheet>Splash sheet</event-sheet> <size> <width>854</width> <height>480</height> </size> <margins> <horizontal>500</horizontal> <vertical>500</vertical> </margins> <unbounded-scrolling>0</unbounded-scrolling> <layers> <layer name="Layer 0" sid="121611999800294"> <initially-visible>1</initially-visible> <background-color>255,255,255</background-color> <transparent>0</transparent> <parallax> <x>1</x> <y>1</y> </parallax> <zoom-rate>1</zoom-rate> <opacity>1</opacity> <force-own-texture>0</force-own-texture> <global>0</global> <use-render-cells>0</use-render-cells> <blend-mode>0</blend-mode> <effect-fallback>0</effect-fallback> <instances> <instance type="Splash" uid="6"> <properties> <id-optional>splash</id-optional> <class-optional></class-optional> <initial-visibility>Visible</initial-visibility> <tooltip></tooltip> <background>transparent</background> <border></border> <scroll>Auto</scroll> <object>HTML</object> <iframe></iframe> <url></url> <html></html> <code>&lt;center&gt;&lt;img id=&quot;logo&quot; width=&quot;100px&quot; src=&quot;icon.png&quot;&gt;&lt;h1 id=&quot;logotext&quot;&gt;Floflis Central&lt;/h1&gt;&lt;/br&gt;&lt;img src=&quot;loading.gif&quot;/ width=&quot;50px&quot;&gt;&lt;/center&gt;</code> <color></color> <text-selectable>Yes</text-selectable> <auto-font-size>Default</auto-font-size> <import></import> <css-import>style.css</css-import> <javascript-import></javascript-import> </properties> <blend-mode>0</blend-mode> <effect-fallback>0</effect-fallback> <world> <x>1</x> <y>1</y> <z>0</z> <width>854</width> <height>480</height> <depth>0</depth> <hotspotX>0</hotspotX> <hotspotY>0</hotspotY> <angle>0</angle> </world> </instance> </instances> <effects /> </layer> </layers> <nonworld-instances /> <effects /> </c2layout> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Splash.xml --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Files/step2.html ----> --------------------------------------------------------------------------------------------------------------------------- <div class="stepper done"> <div class="stepper-icon"><i class="material-icons">check</i></div> <span class="stepper-text"><i class="material-icons">nature</i> Created tree folder above root</span> </div> <div class="stepper active"> <div class="stepper-icon">2</div> <span class="stepper-text"><i class="material-icons">folder_open</i> Creating sys folder</span> </div> <div class="stepper"> <div class="stepper-icon">3</div> <span class="stepper-text"><i class="material-icons">bubble_chart</i> Set Open Badges</span> </div> <div class="stepper"> <div class="stepper-icon">4</div> <span class="stepper-text"><i class="material-icons">apps</i> Install apps</span> </div> <div class="stepper"> <div class="stepper-icon">5</div> <span class="stepper-text"><i class="material-icons">videogame_asset</i> Create folders for games and HTML5 files</span> </div> <div class="stepper"> <div class="stepper-icon">6</div> <span class="stepper-text"><i class="material-icons">devices</i> Set device</span> </div> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Files/step2.html --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/HTML5/Central/Event sheets/App sheet.uistate.xml ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <c2uistate> <!--This is a UI state file - its content describes the user interface settings when the event sheet was last open. It is entirely optional and the project will load without it. If you are placing the project under source control, you probably do not want to add any .uistate.xml files to the repository.--> <show-addaction-links>1</show-addaction-links> <scroll-pos>11000</scroll-pos> <conditions-column>120</conditions-column> <actions-namecolumn>74</actions-namecolumn> <condition-namecolumns> <nest>20</nest> <nest>17</nest> </condition-namecolumns> <events> <event collapsed="1" sid="313311825004114" /> </events> </c2uistate> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/HTML5/Central/Event sheets/App sheet.uistate.xml ---------------------------------------------------------------------------------------------------------------------------
https://github.com/Krowemoh/bash-server app sessions .gitignore README.md server.sh --------------------------------------------------------------------------------------------------------------------------- https://github.com/Krowemoh/bash-server/blob/master/README.md ----> --------------------------------------------------------------------------------------------------------------------------- # Bash Server A HTTP server written in bash! This is just a toy to see if I could do it, and you definitely can write a web server as a shell script! Blog post at: https://nivethan.dev/devlog/a-web-server-in-bash.html --------------------------------------------------------------------------------------------------------------------------- <---- https://github.com/Krowemoh/bash-server/blob/master/README.md --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- https://github.com/Krowemoh/bash-server/blob/master/server.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/usr/bin/bash declare -r CR=$'\r' declare -r LF=$'\n' declare -r CR_LF="${CR}${LF}" declare -r DEBUG=1 declare -A function_dictionary=( [login]=login [signout]=signout ["^comics$"]=comics ["^comics/(.*)"]=issues ["^comics/(.*)/(.*)"]=issue ) serve() { nc --listen --keep-open 0.0.0.0 7999 --sh-exec "./server.sh process" } log() { if [ $DEBUG = 1 ] then echo "$1" >&2; fi } check_session() { if [ ! -f "./sessions/$session_id" ] then render_template "./app/login.html" send_html "$template" fi } process() { local IFS=$'\n' # STDIN -> request_headers get_request_headers # request_headers -> request_type, request_body, request_cookies get_request_body_cookies # request_headers -> requested_resource handle_requested_resource } get_request_headers() { request_headers=() while true do read header if [ "$header" = $CR_LF ] then break fi request_headers=("${request_headers[@]}" "$header") done } get_request_body_cookies() { request_type="$(echo "${request_headers[0]}" | cut -d" " -f1)" post_length=0 for i in "${request_headers[@]}" do header=$(cut -d":" -f1 <<< "$i") if [ "$header" = "Content-Length" ] then post_length=$(echo "$i" | cut -d":" -f2 | tr -d "$CR" | tr -d "$LF" | tr -d ' ') elif [ "$header" = "Cookie" ] then regex=".*session_id=(.*);?" [[ "$i" =~ $regex ]] session_id=$(echo "${BASH_REMATCH[1]}" | tr -d "$CR" | tr -d "$LF") fi done if [ "$post_length" -ne 0 ] then IFS= read -n "$post_length" request_body fi } handle_requested_resource() { regexp=".* (.*) HTTP" [[ "${request_headers[0]}" =~ $regexp ]] resource=$(printf "%s" "${BASH_REMATCH[1]}" | sed 's/%20/ /g' | sed "s/%27/'/g") requested_resource="./app$resource" if [ -f "$requested_resource" ] then send_file "$requested_resource" fi requested_resource="${resource:1}" for x in "${!function_dictionary[@]}" do if [[ "$requested_resource" =~ $x ]] then ${function_dictionary[$x]} fi done render_template "./app/404.html" send_html "$template" } set_response_content_type() { case "$1" in "html") content_type="Content-Type: text/html" ;; "css") content_type="Content-Type: text/css" ;; "js") content_type="Content-Type: text/javascript" ;; "ico") content_type="Content-Type: image/x-icon" ;; "png") content_type="Content-Type: image/png" ;; "jpg" | "jpeg") content_type="Content-Type: image/jpeg" ;; "mp4") content_type="Content-Type: video/mp4" ;; *) content_type="Content-Type: text/plain" ;; esac } get_requested_content() { length=$(stat --printf "%s" "$1") content_length="Content-Length: $length" content=$(cat "$1" | sed 's/\\/\\\\/g' | sed 's/%/%%/g' | sed 's/\x00/\\x00/g') } set_response_headers() { version="HTTP/1.1 200 OK" date="Date: $(date)" connection="Connection: Closed" if [ "$cookies" = "" ] then response_headers="${version}$CR_LF${date}$CR_LF$1$CR_LF$2$CR_LF${connection}" else response_headers="${version}$CR_LF${date}$CR_LF${cookies}$CR_LF$1$CR_LF$2$CR_LF${connection}" fi } build_response() { response="$1$CR_LF$CR_LF$2" } send_response() { printf -- "$1$CR_LF" exit } send_file() { # -> content_type requested_resource="$1" extension="${requested_resource##*.}" set_response_content_type "$extension" # -> data | content_length get_requested_content "$1" # -> response_headers set_response_headers "$content_type" "$content_length" # -> response build_response "$response_headers" "$content" # -> ECHO data | PRINTF data send_response "$response" } send_html() { content="$1" content_length="${#content}" set_response_content_type "html" set_response_headers "$content_type" "$content_length" build_response "$response_headers" "$content" send_response "$response" } render_template() { template=$(eval "cat <<- END $(cat "$1") END ") } login() { if [ "$request_type" = "GET" ] then content="$(cat ./app/login.html)" send_html "$content" else username=$(echo -n "$request_body" | cut -d'&' -f1 | cut -d'=' -f2) password=$(echo -n "$request_body" | cut -d'&' -f2 | cut -d'=' -f2) if [ "$password" = "123" ] then session_id=$(uuidgen) touch "./sessions/$session_id" cookies="Set-cookie: session_id=$session_id" fi render_template "./app/account.html" send_html "$template" fi } signout() { if [ -f "./sessions/$session_id" ] then rm "./sessions/$session_id" session_id="" cookies="Set-cookie: session_id=$session_id" fi render_template "./app/login.html" send_html "$template" } comics() { check_session render_template "./app/comics.html" send_html "$template" } issues() { check_session comic_name="${BASH_REMATCH[1]}" render_template "./app/issues.html" send_html "$template" } issue() { check_session comic_name="${BASH_REMATCH[1]}" issue_number="${BASH_REMATCH[2]}" render_template "./app/issue.html" send_html "$template" } "$1" --------------------------------------------------------------------------------------------------------------------------- <---- https://github.com/Krowemoh/bash-server/blob/master/server.sh --------------------------------------------------------------------------------------------------------------------------- ---- https://github.com/Plasmmer/HTTB.git forked from: https://github.com/Krowemoh/bash-server custom install.sh merge README.md TasksOther.txt httb logo.png Presentation.pptx 'SRC At ETH💎💌.txt' Tasks.txt --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/HTTB/README.md ----> --------------------------------------------------------------------------------------------------------------------------- # <img width="250px" src="logo.png" title="HTTB" alt="HTTB"> The HTTP server purely written in ![Bash](https://img.shields.io/badge/-Bash-1f425f?style=for-the-badge&logo=image%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE3MDg2QTAyQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE3MDg2QTAzQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTcwODZBMDBBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTcwODZBMDFBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciLz4gPC9yZGY6RGVzY3JpcHRpb24%2BIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2BIDw%2FeHBhY2tldCBlbmQ9InIiPz6lm45hAAADkklEQVR42qyVa0yTVxzGn7d9Wy03MS2ii8s%2BeokYNQSVhCzOjXZOFNF4jx%2BMRmPUMEUEqVG36jo2thizLSQSMd4N8ZoQ8RKjJtooaCpK6ZoCtRXKpRempbTv5ey83bhkAUphz8fznvP8znn%2B%2F3NeEEJgNBoRRSmz0ub%2FfuxEacBg%2FDmYtiCjgo5NG2mBXq%2BH5I1ogMRk9Zbd%2BQU2e1ML6VPLOyf5tvBQ8yT1lG10imxsABm7SLs898GTpyYynEzP60hO3trHDKvMigUwdeaceacqzp7nOI4n0SSIIjl36ao4Z356OV07fSQAk6xJ3XGg%2BLCr1d1OYlVHp4eUHPnerU79ZA%2F1kuv1JQMAg%2BE4O2P23EumF3VkvHprsZKMzKwbRUXFEyTvSIEmTVbrysp%2BWr8wfQHGK6WChVa3bKUmdWou%2BjpArdGkzZ41c1zG%2Fu5uGH4swzd561F%2BuhIT4%2BLnSuPsv9%2BJKIpjNr9dXYOyk7%2FBZrcjIT4eCnoKgedJP4BEqhG77E3NKP31FO7cfQA5K0dSYuLgz2TwCWJSOBzG6crzKK%2BohNfni%2Bx6OMUMMNe%2Fgf7ocbw0v0acKg6J8Ql0q%2BT%2FAXR5PNi5dz9c71upuQqCKFAD%2BYhrZLEAmpodaHO3Qy6TI3NhBpbrshGtOWKOSMYwYGQM8nJzoFJNxP2HjyIQho4PewK6hBktoDcUwtIln4PjOWzflQ%2Be5yl0yCCYgYikTclGlxadio%2BBQCSiW1UXoVGrKYwH4RgMrjU1HAB4vR6LzWYfFUCKxfS8Ftk5qxHoCUQAUkRJaSEokkV6Y%2F%2BJUOC4hn6A39NVXVBYeNP8piH6HeA4fPbpdBQV5KOx0QaL1YppX3Jgk0TwH2Vg6S3u%2BdB91%2B%2FpuNYPYFl5uP5V7ZqvsrX7jxqMXR6ff3gCQSTzFI0a1TX3wIs8ul%2Bq4HuWAAiM39vhOuR1O1fQ2gT%2F26Z8Z5vrl2OHi9OXZn995nLV9aFfS6UC9JeJPfuK0NBohWpCHMSAAsFe74WWP%2BvT25wtP9Bpob6uGqqyDnOtaeumjRu%2ByFu36VntK%2FPA5umTJeUtPWZSU9BCgud661odVp3DZtkc7AnYR33RRC708PrVi1larW7XwZIjLnd7R6SgSqWSNjU1B3F72pz5TZbXmX5vV81Yb7Lg7XT%2FUXriu8XLVqw6c6XqWnBKiiYU%2BMt3wWF7u7i91XlSEITwSAZ%2FCzAAHsJVbwXYFFEAAAAASUVORK5CYII%3D&logoColor=fff)! Imagine nginx, but written in shell. "HTTB" stands for Hyper Text Transfer **Bash**. After installing, run `httb serve`. To test the example site, run `cd /var/www && git clone https://github.com/Plasmmer/HTTB_sample-site html` # Purpose Make it easier to power dynamic pages by using Bash instead of PHP, and the Linux's filesystem/JSON files instead of MySQL. Its like Hugo, but you turn static HTML into dynamic! Without needing PHP nor other hard languages. This server shouldn't be used in large sites (about security and speed probably), but as a playground for getting familiar with webservers until migrating to NodeJS/PHP and MySQL; so your product can grow with HTTB then later evolve. HTTB isn't available in C/Rust (yet) and had no security audits. # Background Initially this was just a toy for [@Krowemoh](https://github.com/Krowemoh/bash-server) see if they could do it, and definitely this project proved you can write a more-than-basic web server as a shell script! "More-than-basic" server because it can manage user logins/sessions directly from a JSON file, handle requests, file requests, display 404 error messages. Soon™: support to Web3. Blog post at: https://nivethan.dev/devlog/a-web-server-in-bash.html --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/HTTB/README.md --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/HTTB/Tasks.txt ----> --------------------------------------------------------------------------------------------------------------------------- - use mlq to display error messages at signup and login pages - signup: email before username - login: accept both email and username - signup: Web 2.0 and Web3 tabs; in Web3 tab, form also have ETH address - login: Web 2.0 and Web3 tabs; in Web3 tab, form accepts only ETH address instead of email/username - signup: add its entry adding +1 to ID in users.json. Git commit on every new signup. Message: -m "Register new Web 2.0 user" -m "Username: $Username" -m "ID: $ID" - turn custom/db into a git repo. avoid install.sh overwritting db - redirect /login.html to /login - if user is already logged, redirect /login to the logged start page - fix custom/handle_requested_resource.sh - MOVED TO: https://github.com/Plasmmer/HTTB/issues/4 - Support for any kind of file, which will include .svg - Support for HTTPS and Certbot plugin (test in Web3Framework) - test compiling to c with "shc -f httb" and from the C source, to Rust🔥 - use mlq to display custom error messages in login-error.html and signup-error.html (not writing directly to these files, but pre-rendering) httb's JSON DB at Floflis Profile site can handle somewhat like 1K simultaneous usr or some more; but before getting closer to limit, httb should abstract its own ways to handle full MySQL databases - support for download.json future feature: enter folders listing their files, using Screens Explorer (this will be linked with Screens Explorer's own task through Github). Save the comics.html page and bash functions as example support for DML if browser doesn't support DML, parse/convert and send HTML. (this will mean more server resources used) --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/HTTB/Tasks.txt --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/HTTB/install.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/sh echo "Installing httb..." sudo cp -f httb /usr/bin/httb sudo mkdir /usr/lib/httb sudo cp -f README.md /usr/lib/httb/README.md #sudo cp -rf custom /usr/lib/httb/custom/ rsync -av custom/ /usr/lib/httb/custom #mkdir /usr/lib/httb/custom/db mkdir /usr/lib/httb/custom/sessions mkdir /usr/lib/httb/custom/db/users mkdir /var/www mkdir /var/www/html mkdir /etc/httb cat > /etc/httb/httb.conf.json <<EOF { "htmlfolder": "/var/www/html", "port": "8080" } EOF installfail(){ echo "Installation has failed." exit 1 } if [ -f /usr/bin/httb ];then echo "- Turning httb into an executable..." sudo chmod +x /usr/bin/httb echo "Done!" # if httb babyisalive; then echo "Done! Running \"httb -r '#first' sample.html\" command as example to use it:" && (httb -r '#first' /usr/lib/httb/sample.html &);exit 0; else installfail; fi else installfail fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/HTTB/install.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/HTTB/httb ----> --------------------------------------------------------------------------------------------------------------------------- #!/usr/bin/bash #htmlfolder="/var/www/html" htmlfolder="$(jq -r '.htmlfolder' /etc/httb/httb.conf.json)" serverport="$(jq -r '.port' /etc/httb/httb.conf.json)" declare -r CR=$'\r' declare -r LF=$'\n' declare -r CR_LF="${CR}${LF}" declare -r DEBUG=1 declare -A function_dictionary=( [signup]=signup [login]=login [signout]=signout ["^comics$"]=comics ["^comics/(.*)"]=issues ["^comics/(.*)/(.*)"]=issue ) serve() { ncat --listen --keep-open 0.0.0.0 $serverport --sh-exec "httb process" } log() { if [ $DEBUG = 1 ] then echo "$1" >&2; fi } check_session() { if [ ! -f "/usr/lib/httb/custom/sessions/$session_id" ] then render_template "$htmlfolder/login.html" send_html "$template" fi } process() { local IFS=$'\n' # STDIN -> request_headers get_request_headers # request_headers -> request_type, request_body, request_cookies get_request_body_cookies # request_headers -> requested_resource handle_requested_resource } get_request_headers() { request_headers=() while true do read header if [ "$header" = $CR_LF ] then break fi request_headers=("${request_headers[@]}" "$header") done } get_request_body_cookies() { request_type="$(echo "${request_headers[0]}" | cut -d" " -f1)" post_length=0 for i in "${request_headers[@]}" do header=$(cut -d":" -f1 <<< "$i") if [ "$header" = "Content-Length" ] then post_length=$(echo "$i" | cut -d":" -f2 | tr -d "$CR" | tr -d "$LF" | tr -d ' ') elif [ "$header" = "Cookie" ] then regex=".*session_id=(.*);?" [[ "$i" =~ $regex ]] session_id=$(echo "${BASH_REMATCH[1]}" | tr -d "$CR" | tr -d "$LF") fi done if [ "$post_length" -ne 0 ] then IFS= read -n "$post_length" request_body fi } handle_requested_resource() { regexp=".* (.*) HTTP" [[ "${request_headers[0]}" =~ $regexp ]] resource=$(printf "%s" "${BASH_REMATCH[1]}" | sed 's/%20/ /g' | sed "s/%27/'/g") requested_resource="$htmlfolder$resource" if [ -f "$requested_resource" ] then send_file "$requested_resource" fi . /usr/lib/httb/custom/./handle_requested_resource.sh requested_resource="${resource:1}" for x in "${!function_dictionary[@]}" do if [[ "$requested_resource" =~ $x ]] then ${function_dictionary[$x]} fi done render_template "$htmlfolder/404.html" send_html "$template" } set_response_content_type() { case "$1" in "html") content_type="Content-Type: text/html" ;; "css") content_type="Content-Type: text/css" ;; "js") content_type="Content-Type: text/javascript" ;; "ico") content_type="Content-Type: image/x-icon" ;; "png") content_type="Content-Type: image/png" ;; "jpg" | "jpeg") content_type="Content-Type: image/jpeg" ;; "mp4") content_type="Content-Type: video/mp4" ;; *) content_type="Content-Type: text/plain" ;; esac } get_requested_content() { length=$(stat --printf "%s" "$1") content_length="Content-Length: $length" content=$(cat "$1" | sed 's/\\/\\\\/g' | sed 's/%/%%/g' | sed 's/\x00/\\x00/g') } set_response_headers() { version="HTTP/1.1 200 OK" date="Date: $(date)" connection="Connection: Closed" if [ "$cookies" = "" ] then response_headers="${version}$CR_LF${date}$CR_LF$1$CR_LF$2$CR_LF${connection}" else response_headers="${version}$CR_LF${date}$CR_LF${cookies}$CR_LF$1$CR_LF$2$CR_LF${connection}" fi } build_response() { response="$1$CR_LF$CR_LF$2" } send_response() { printf -- "$1$CR_LF" exit } send_file() { # -> content_type requested_resource="$1" extension="${requested_resource##*.}" set_response_content_type "$extension" # -> data | content_length get_requested_content "$1" # -> response_headers set_response_headers "$content_type" "$content_length" # -> response build_response "$response_headers" "$content" # -> ECHO data | PRINTF data send_response "$response" } send_html() { content="$1" content_length="${#content}" set_response_content_type "html" set_response_headers "$content_type" "$content_length" build_response "$response_headers" "$content" send_response "$response" } render_template() { template=$(eval "cat <<- END $(cat "$1") END ") } signup() { if [ "$request_type" = "GET" ] then content="$(cat $htmlfolder/signup.html)" send_html "$content" else username=$(echo -n "$request_body" | cut -d'&' -f1 | cut -d'=' -f2) password=$(echo -n "$request_body" | cut -d'&' -f2 | cut -d'=' -f2) if ! jq -r ".$username[]" /usr/lib/httb/custom/db/users.json # if the choosen username doesn't already exist, enable signup and register user then tmp="$(mktemp)"; cat /usr/lib/httb/custom/db/users.json | jq ". + {"\"$username\"":[{\"id\":\"\",\"pw\":\"$(echo -n "$password" | sha256sum | cut -d' ' -f1)\"}]}" >"$tmp" && mv "$tmp" /usr/lib/httb/custom/db/users.json mkdir /usr/lib/httb/custom/db/users/$username render_template "$htmlfolder/signup-success.html" send_html "$template" else render_template "$htmlfolder/signup-error.html" send_html "$template" #render_template "$htmlfolder/signup.html" #echo "$template" > /tmp/mlq_render_template.html #mlq_template="$(mlq '#error-msg = "<h2>Cannot create account</h2><h3>Username already exist</h3>"' /tmp/mlq_render_template.html)" #send_html "$mlq_template" #rm -f /tmp/mlq_render_template.html fi fi } login() { if [ "$request_type" = "GET" ] then content="$(cat $htmlfolder/login.html)" send_html "$content" else username=$(echo -n "$request_body" | cut -d'&' -f1 | cut -d'=' -f2) password=$(echo -n "$request_body" | cut -d'&' -f2 | cut -d'=' -f2) if [ "$(echo -n "$password" | sha256sum | cut -d' ' -f1)" = "$(jq -r ".$username[].pw" /usr/lib/httb/custom/db/users.json)" ] # if the submitted password's hash is equal the hash stored in given user's entry in db, validate login then session_id=$(uuidgen) touch "/usr/lib/httb/custom/sessions/$session_id" cookies="Set-cookie: session_id=$session_id" render_template "$htmlfolder/account.html" send_html "$template" else render_template "$htmlfolder/login-error.html" send_html "$template" #mlq_template="$(mlq '#errormsg = "<h2>Cannot login</h2><h3>Wrong username/password</h3>"' "$htmlfolder/login.html")" #echo "$mlq_template" > /tmp/mlq_render_template.html #render_template "/tmp/mlq_render_template.html" #rm -f /tmp/mlq_render_template.html #send_html "$template" fi fi } signout() { if [ -f "/usr/lib/httb/custom/sessions/$session_id" ] then rm "/usr/lib/httb/custom/sessions/$session_id" session_id="" cookies="Set-cookie: session_id=$session_id" fi render_template "$htmlfolder/login.html" send_html "$template" } comics() { check_session render_template "$htmlfolder/comics.html" send_html "$template" } issues() { check_session comic_name="${BASH_REMATCH[1]}" render_template "$htmlfolder/issues.html" send_html "$template" } issue() { check_session comic_name="${BASH_REMATCH[1]}" issue_number="${BASH_REMATCH[2]}" render_template "$htmlfolder/issue.html" send_html "$template" } "$1" --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/HTTB/httb --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/HTTB/custom/handle_requested_resource.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/sh log "$request_body" if jq -e . >/dev/null 2>&1 <<<"$json_string" then log "Parsed JSON successfully and got something other than false/null" json_username="$(echo "$request_body" | jq -r '.name')" json_age="$(echo "$request_body" | jq -r '.age')" log "Name: $json_username | Age: $json_age" else log "Failed to parse JSON, or got false/null" fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/HTTB/custom/handle_requested_resource.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/HTTB/custom/db/users.json ----> --------------------------------------------------------------------------------------------------------------------------- { "mew": [{ "id": "1", "pw": "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3" }] } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/HTTB/custom/db/users.json ---------------------------------------------------------------------------------------------------------------------------
https://github.com/Floflis/mlq.git --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/mlq/README.md ----> --------------------------------------------------------------------------------------------------------------------------- # mlq jq, but HTML instead of JSON 🧚 ---- ## Reading the content inside a given tag by id `mlq -r '#imAnID' file.html` More usage, in the next lines; so please continue reading. Let's focus first in the first: # Installing ## Easy (option 1) Open the Withcraft/Terminal/Prompt and type + press `[ENTER]`: ```sh curl --proto '=https' --tlsv1.3 -sSf https://raw.githubusercontent.com/Floflis/mlq/main/install.sh | sh ``` ## Locally (option 2) If you don't trust downloading+executing a script, you can do it locally. Open terminal and type following by pressing `[ENTER]`: ### Floflis, Floflis-based distros such as UniOS and any other that uses [nu shell](https://github.com/nushell/nushell): ```nu git clone https://github.com/Floflis/mlq.git ; cd mlq ``` After reviewing the code of install.sh: ```nu chmod +x install.sh ; sh ./install.sh ``` ### Any other *nix distro (Ubuntu/Arch/MacOS/etc): ```sh git clone https://github.com/Floflis/mlq.git && cd mlq ``` After reviewing the code of install.sh: ```sh chmod +x install.sh && sh ./install.sh ``` ---- ## Writing any desired content inside a given tag by id on-the-fly: `mlq '#imAnID = "<desired>CONTENT</desired>"' file.html` You can write out the output to any file/place; its up to your creativity. ## Writing any desired content inside a given tag by id, writing directly to the file (be cautious): ```sh contents="$(mlq '#imAnID = "<desired>CONTENT</desired>"' file.html)" && \ echo "${contents}" > file.html ``` Note: this tool isn't professional nor native. You are free to make a program with the same name (mlq) in Rust, then ask us to replace this by yours; but a better idea would be to contribute to/complete something existing: [htmlq](https://github.com/mgdm/htmlq) The positive points about mlq: - short name/command - lower entry barrier, as there are more Bash than C/Rust/Perl developers (so it can have more features than others and developed in a faster pace) ---- ## mlq is used by: - [Floflis Status server](http://status.floflis.com/) - [Firedoge browser](https://github.com/zilldao/firedoge) --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/mlq/README.md --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/mlq/dependencies.txt ----> --------------------------------------------------------------------------------------------------------------------------- xmlstarlet --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/mlq/dependencies.txt --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/mlq/Tasks.txt ----> --------------------------------------------------------------------------------------------------------------------------- Make a custom "shc -f " which finds "bash <path/path> flags" and replaces "bash <path/path>" to the compiled dependencies (use on Plugz) get all tags that contain "version" cat Floflis\ Central.caproj | grep -oE ".?version[^<>]*>[^<>]+" | cut -d'>' -f get only the second tag that contain "version" cat Floflis\ Central.caproj | grep -oE ".?version[^<>]*>[^<>]+" | cut -d'>' -f2 | sed -n '2 p' make examples at README.md compatible with sample.html support to HTML classes/CSS selectors example use variable mlq "#first = \"$use\"" sample.html tests: ❯ echo "#imAnID#childID" | grep -o '#[[:alpha:]]\+*' | awk 'NF { print "\""$0"\""}' | tr "\n" " " | tr '"' "'" | tr -d '#' 'imAnID' 'childID' ❯ echo '#imAnID = "replaceinsidetag"' | grep -o '"[[:alpha:]]\+*"' | tr -d '"' replaceinsidetag Support stdout in place of file.html (like jq) add <html xmlns="http://www.w3.org/1999/xhtml"> then remove (except when its already present before) Support to append: xmlstarlet ed -L -N X='http://www.w3.org/1999/xhtml' \ --var peg '//X:element[@id="daipeg"]' \ #--var res "usetextvariable" \ #-u '$peg' -x 'concat($peg," and then ",$res)' index.html -u '$peg' -x 'concat($peg," use text or variable")' index.html --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/mlq/Tasks.txt --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/mlq/sample.html ----> --------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"/> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Title</title> </head> <body><h1>Title</h1><ul><li><p>Element 1 to change: <b><element id="first">First content</element></b></p></li><li><p>Another to change: <b><element id="element">...</element> is this.</b></p></li></ul> </body> </html> --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/mlq/sample.html --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/mlq/install.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/sh echo "Installing mlq..." sudo cp -f mlq /usr/bin/mlq sudo mkdir /usr/lib/mlq sudo cp -f mlq-parser.sh /usr/lib/mlq/mlq-parser.sh sudo cp -f mlq-parser_worker.sh /usr/lib/mlq/mlq-parser_worker.sh sudo cp -f sample.html /usr/lib/mlq/sample.html installfail(){ echo "Installation has failed." exit 1 } if [ -f /usr/bin/mlq ];then echo "- Turning mlq into an executable..." sudo chmod +x /usr/bin/mlq if mlq babyisalive; then echo "Done! Running \"mlq -r '#first' sample.html\" command as example to use it:" && (mlq -r '#first' /usr/lib/mlq/sample.html &);exit 0; else installfail; fi else installfail fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/mlq/install.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/mlq/mlq ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e if [ "$1" = "-r" ];then if [ "$2" != "" ];then if [ "$3" != "" ];then singletagid=$(echo "$2" | tr -d "#") cat $3 | grep -oE "id=.?\"$singletagid\"[^<>]*>[^<>]+" | cut -d'>' -f2; exit 0 else echo "Missing the HTML file you want to use."; exit 1 fi else echo "Missing the HTML tag ID you want to operate."; exit 1 fi fi if [ "$1" != "-r" ];then if [ "$1" != "" ];then if [ "$2" != "" ];then if [ "$1" != "babyisalive" ] || [ "$1" != "--help" ] || [ "$1" != "-h" ];then bash /usr/lib/mlq/mlq-parser.sh --write "${1}" "$2" else echo "Missing the HTML file you want to use."; exit 1 fi fi else echo "Missing the HTML tag ID you want to operate."; exit 1 fi fi if [ "$1" = "babyisalive" ]; then exit 0 fi if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then echo "Use these commands after/together with 'mlq' command." echo "Available commands:" echo " mlq -r '#imAnID' file.html Reads the content of a given tag by its ID" echo " mlq '#imAnID = \"<desired>CONTENT</desired>\"' file.html Writes any desired content inside a given tag by id on-the-fly" echo " --help, -h Shows all available commands" # echo " --version, -v Shows info about OS name, version and build version" fi #mlq '#imAnID = "replaceinsidetag"' file.html #parser receives instruction/flag from mlq, validates and passes its own flags to worker #parser_worker runs/loops the flags it received # when extracting content of a tag, also enable to parse its nested tags: #mlq -r '#imAnID#childID' # also extract classes: #mlq -r '#imAnID#childID.anotherchild' # be able to replace or append content into tags/ids --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/mlq/mlq --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/mlq/mlq-parser.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e if [ "$1" = "--write" ];then # text_to_insert=$(echo "$2" | grep -o '"...\+"' | tr -d '"') text_to_insert=$(echo "$2" | grep -o '".\+"' | tr -d '"') # echo "it have to work: $2" # echo "the previous did work. But: $text_to_insert" tagtree=$(echo "$2" | grep -o '#[[:alpha:]]\+*' | awk 'NF { print "\""$0"\""}' | tr "\n" " " | tr '"' "'" | tr -d '#') # sh ./mlq-parser_worker.sh --tree # sh ./mlq-parser_worker.sh --insert tagtreesingle=$(echo "$tagtree" | tr -d "'") # echo "mitigate ok: $3" # echo "mitigate all: $tagtreesingle, $text_to_insert" bash /usr/lib/mlq/mlq-parser_worker.sh --singletag $tagtreesingle "$text_to_insert" "$3" fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/mlq/mlq-parser.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/mlq/mlq-parser_worker.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e if [ "$1" = "--tree" ];then echo "Not implemented yet" fi if [ "$1" = "--insert" ];then echo "Not implemented yet" fi if [ "$1" = "--singletag" ];then cp $4 /tmp/mlq-output.html # echo "mitigate 1: $1" # echo "mitigate 2: $2" # echo "mitigate 3: $3" # echo "mitigate 4: $4" # xmlstarlet ed --inplace -N X='http://www.w3.org/1999/xhtml' \ #--update '//X:element[@id="daipeg"]' --value 'new' index.html # <-- most solid # one line with tricks --> xmlstarlet ed -L -u "//_:*[@id='$2']" -v "$3" /tmp/mlq-output.html cat /tmp/mlq-output.html #- cat /tmp/mlq-output.html | htmlq -p rm -f /tmp/mlq-output.html fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/mlq/mlq-parser_worker.sh ---------------------------------------------------------------------------------------------------------------------------
https://github.com/Floflis/online.git --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/online/README.md ----> --------------------------------------------------------------------------------------------------------------------------- # online Utility to check if online or offline. Install and just type `online` in the Witchcraft/Terminal ---- # Usage ```sh if online -s; then echo "✅ Its online" else echo "❌ Its offline" fi ``` # Installing ## Easy (option 1) Open the Withcraft/Terminal/Prompt and type + press `[ENTER]`: ```sh curl --proto '=https' --tlsv1.3 -sSf https://raw.githubusercontent.com/Floflis/online/main/install.sh | sh ``` ## Locally (option 2) If you don't trust downloading+executing a script, you can do it locally. Open terminal and type following by pressing `[ENTER]`: ### Floflis, Floflis-based distros such as UniOS and any other that uses [nu shell](https://github.com/nushell/nushell): ```nu git clone https://github.com/Floflis/online.git ; cd online ``` After reviewing the code of install.sh: ```nu chmod +x install.sh ; sh ./install.sh ``` ### Any other *nix distro (Ubuntu/Arch/MacOS/etc): ```sh git clone https://github.com/Floflis/online.git && cd online ``` After reviewing the code of install.sh: ```sh chmod +x install.sh && sh ./install.sh ``` ---- # How to use Open the Witchcraft/Prompt/Terminal and type: `online` For programatic use, head to [Usage](#usage). --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/online/README.md --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/online/install.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/sh echo "Installing online..." sudo cp -f online /usr/bin/online installfail(){ echo "Installation has failed." exit 1 } if [ -f /usr/bin/online ];then echo "- Turning online into an executable..." sudo chmod +x /usr/bin/online if online babyisalive; then echo "Done! Running 'online' command as example to use it:" && (online &);exit 0; else installfail; fi else installfail fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/online/install.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/online/online ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/sh -e offline="" if nc -zw1 facebook.com 443 2>/dev/null; then step_one="y" else if nc -zw1 twitter.com 443 2>/dev/null; then step_two="y" else if nc -zw1 google.com 443 2>/dev/null; then step_three="y" else if nc -zw1 plasmmer.com 443 2>/dev/null; then step_four="y" else offline="y" fi fi fi fi if [ "$1" != "" ]; then if [ "$1" = "-s" ] || [ "$1" = "-q" ] || [ "$1" = "--silent" ] || [ "$1" = "--quiet" ]; then if [ "$step_one" = "y" ]; then exit 0; fi if [ "$step_two" = "y" ]; then exit 0; fi if [ "$step_three" = "y" ]; then exit 0; fi if [ "$step_four" = "y" ]; then exit 0; fi if [ "$offline" = "y" ]; then exit 1; fi fi else if [ "$step_one" = "y" ]; then echo "Facebook is online."; fi if [ "$step_two" = "y" ]; then echo "Facebook is offline 🤷‍♀️";echo "But as expected, Twitter is online."; fi if [ "$step_three" = "y" ]; then echo "Facebook and Twitter are offline.";echo "But Google still exist and I dunno why."; fi if [ "$step_four" = "y" ]; then echo "Facebook, Twitter and Google are offline; did they moved into web3?";echo "But yes, you are online in the classical web 2.0"; fi if [ "$offline" = "y" ]; then echo "You are offline.";exit 1; else echo "You are online.";exit 0; fi fi if [ "$1" = "babyisalive" ]; then exit 0 fi if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then echo "Use these commands after/together with 'online' command." echo "Available flags:" echo " --silent, -s Only output an exit code" echo " --help, -h Shows all available commands" # echo " --version, -v Shows info about OS name, version and build version" fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/online/online ---------------------------------------------------------------------------------------------------------------------------
https://github.com/Plasmmer/Future-comp.git --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/Future1984/README.md ----> --------------------------------------------------------------------------------------------------------------------------- # Plasmmer Future1984 The intersection between past and future in PCs. Imagine owning the cutting-edge of technology with a Mac in 1984? You can revive these times with the cutting-edge again: RISC-V, Rust and black-white E-INK. ## 1.0 * board: $665+$29 https://www.mouser.com/ProductDetail/115-HF105-000 https://www.crowdsupply.com/sifive/hifive-unmatched * 250GB SSD: R$587,54 ($120) https://www.kabum.com.br/produto/100973/ssd-samsung-970-evo-plus-250gb-m-2-nvme-leitura-3500mb-s-gravacao-2300mb-s-mz-v7s250b-am * 13.3" E-ink Monitor: $1099 * 3D-printable case * GPU rx-590 8gb gddr5 R$1165 ($237) https://www.kabum.com.br/produto/103340/placa-de-v-deo-sapphire-amd-radeon-rx-590-8gb-gddr5-11289-06-20g https://lista.mercadolivre.com.br/rx500 $2150 (R$12.116) * built-in NFC * USB-C ports alongside microphone/earphone jacks * USB 4.0 ports ---- ## 2.0 * 1TB SSD: R$1695 ($344) https://www.kabum.com.br/produto/100129/ssd-samsung-970-evo-plus-1tb-m-2-nvme-leitura-3500mb-s-grava-o-3300mb-s-mz-v7s1t0b-am * Paperlike 253 25.3" E-ink Monitor https://dasung-tech.myshopify.com/pages/more-about-paperlike-253 https://www.indiegogo.com/projects/paperlike-253-the-first-25-3-inch-e-ink-monitor#/updates/all --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/Future1984/README.md ---------------------------------------------------------------------------------------------------------------------------
https://github.com/Floflis/ethgas.git --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/ethgas/install.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/sh echo "Installing ethgas..." sudo cp -f ethgas /usr/bin/ethgas sudo mkdir /usr/lib/ethgas sudo cp -f gas-pump.svg /usr/lib/ethgas/gas-pump.svg sudo cp -f gas-pump-symbolic.svg /usr/share/icons/hicolor/scalable/status/gas-pump-symbolic.svg installfail(){ echo "Installation has failed." exit 1 } if [ -f /usr/bin/ethgas ];then echo "- Turning ethgas into an executable..." sudo chmod +x /usr/bin/ethgas if ethgas babyisalive; then echo "Done! Running 'ethgas' command as example to use it:" && (ethgas &);exit 0; else installfail; fi else installfail fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/ethgas/install.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Floflis/Utilities/ethgas/ethgas ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e offline_msg="You are offline." rapidgasget=$(curl -s https://etherchain.org/api/gasnow | jq -r '.data.rapid');rapidgasformat=$(printf "%'d" $rapidgasget) fastgasget=$(curl -s https://etherchain.org/api/gasnow | jq -r '.data.fast');fastgasformat=$(printf "%'d" $fastgasget) standardgasget=$(curl -s https://etherchain.org/api/gasnow | jq -r '.data.standard');standardgasformat=$(printf "%'d" $standardgasget) slowgasget=$(curl -s https://etherchain.org/api/gasnow | jq -r '.data.slow');slowgasformat=$(printf "%'d" $slowgasget) #ethprice=$(curl -s https://etherchain.org/api/gasnow | jq -r '.data.priceUSD') #rapidgas_toeth=$(echo "0.1 0.1" | awk '{printf "%.18f\n", $rapidgasget / 1000000000000000000}') #rapidgas_cost=$(echo "$value + $value"|bc) if [ "$1" != "" ] then if [ "$1" = "gasno" ];then if online -s; then echo ${fastgasformat%%,*}; else echo "OFF"; fi fi if [ "$1" = "icon" ];then echo "/usr/lib/ethgas/gas-pump.svg" fi if [ "$1" = "oneline" ];then if online -s; then echo "🚀 Rapid: ${rapidgasformat%%,*} | ✈ Fast: ${fastgasformat%%,*} | 🚗 Standard: ${standardgasformat%%,*} | 🛵 Slow: ${slowgasformat%%,*}"; else echo "❌ $offline_msg"; fi fi else gaslines () { echo "⛽ ETH Gas" echo "Current gas prices in GWei:" echo "--------------------------------" echo "🚀 Rapid: ${rapidgasformat%%,*}" echo " | 15 Seconds" echo "--------------------------------" echo "✈ Fast: ${fastgasformat%%,*}" echo " | 1 Minute" echo "--------------------------------" echo "🚗 Standard: ${standardgasformat%%,*}" echo " | 3 Minutes" echo "--------------------------------" echo "🛵 Slow: ${slowgasformat%%,*}" echo " | > 10 Minutes" } if online -s; then gaslines; else echo "⛽ ETH Gas:";echo "$offline_msg"; fi fi if [ "$1" = "babyisalive" ]; then exit 0 fi if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then echo "Use these commands after/together with 'online' command." echo "Available flags:" echo " gasno Display only the number of the median gas (GWei) price" echo " oneline Display all of the gas price options in one line" echo " icon Returns the dinamic icon to be used (programmatic use)" echo " --help, -h Shows all available commands" # echo " --version, -v Shows info about OS name, version and build version" fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Floflis/Utilities/ethgas/ethgas ---------------------------------------------------------------------------------------------------------------------------
https://github.com/Plasmmer/SharedChain.git --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/0.json ----> --------------------------------------------------------------------------------------------------------------------------- { "commonchain-v": "1.0", "type": "github-releases", "gitrepo": "ipfs/go-ipfs", "fileprefix": "go-ipfs_", "filesufix": "_linux-amd64.tar.gz", "firstblock": "QmXdFawbXkwjMEYLWk1eQLjr2CKSeNYBekRsKRv2iSqzbo" } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/0.json --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/1.json ----> --------------------------------------------------------------------------------------------------------------------------- { "prevblock": "", "tag": "", "url": "https://github.com//releases/download//go-ipfs__linux-amd64.tar.gz", "ipfs": "" } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/1.json --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/2.json ----> --------------------------------------------------------------------------------------------------------------------------- { "prevblock": "QmXdFawbXkwjMEYLWk1eQLjr2CKSeNYBekRsKRv2iSqzbo", "tag": "v0.9.1", "url": "https://github.com/ipfs/go-ipfs/releases/download/v0.9.1/go-ipfs_v0.9.1_linux-amd64.tar.gz", "ipfs": "QmYhnrBkoU57C6EoBMrQqYFHuayayhGmaNyDucMVXJWxKr" } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/2.json --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/3.json ----> --------------------------------------------------------------------------------------------------------------------------- { "prevblock": "QmS5RtdirDvXvbWT9t4JRKeBrx9DDFqdP1yw988pdNJhKj", "tag": "v0.10.0", "url": "https://github.com/ipfs/go-ipfs/releases/download/v0.10.0/go-ipfs_v0.10.0_linux-amd64.tar.gz", "ipfs": "QmWrZAyfLFZM4GWCiRrRh4ZXAiFQFzuLxABcFstAxWD4Sx" } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/3.json --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/4.json ----> --------------------------------------------------------------------------------------------------------------------------- { "prevblock": "QmdrN7Nv3tzzJBnxgVa1RkTzR2b2WJDwEsUkP3VLTPVqZ9", "tag": "v0.11.0", "url": "https://github.com/ipfs/go-ipfs/releases/download/v0.11.0/go-ipfs_v0.11.0_linux-amd64.tar.gz", "ipfs": "QmemU3t9bRWBzRrWLVaHfmqyTLsRowg3DVJfJEPftB4PvZ" } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/4.json --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/5.json ----> --------------------------------------------------------------------------------------------------------------------------- { "prevblock": "QmRFcZAH6rTFQbLUPM4NDKaATEdfP5pVj7nGSzWPKx3bRw", "tag": "v0.12.0", "url": "https://github.com/ipfs/go-ipfs/releases/download/v0.12.0/go-ipfs_v0.12.0_linux-amd64.tar.gz", "ipfs": "QmS5N5LjvhYueK2uYG4npy6pKhwgaYBezBRFMxyzU6Doar" } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/5.json --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/6.json ----> --------------------------------------------------------------------------------------------------------------------------- { "prevblock": "QmVSCKGZULdRjC2sAA1FjbnJLH8sCCMbmdy1iajjLPP9WX", "tag": "", "url": "https://github.com/ipfs/go-ipfs/releases/download//go-ipfs__linux-amd64.tar.gz", "ipfs": "" } --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/6.json --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/commonchain.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e nm="CommonChain" vs="r1" commonchainversion=""" \e[1;42m $nm \e[0m\e[100m version $vs \e[0m \e[100m Created in 10-21-2021 by Daniella Mesquita \e[0m """ lastblockpath=$(find -maxdepth 1 -name '*.json' | sort -t_ -nk2,2 | tail -n1) tmp="${lastblockpath##*/}" # gives 2.json lastblock="${tmp%.*}" # gives 2 if [ "$lastblock" -ge "2" ] then prevblock="$(($lastblock - 1))" else prevblock="Can't verify previous block because this commonchain is still at block 1. Wait until it reach block 2 or more." fi gitrepo="$(jq -r '.gitrepo' 0.json)" lastblocktag="$(jq -r '.tag' $lastblock.json)" releasetag="$( curl --silent "https://api.github.com/repos/$gitrepo/releases/latest" \ | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' )" releasetagnov="$( curl --silent "https://api.github.com/repos/$gitrepo/releases/latest" \ | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' \ | cut -c 2- )" export nm && export vs && export commonchainversion && export lastblockpath && export lastblock && export prevblock && export gitrepo && export releasetag && export releasetag && export lastblocktag if [ "$1" = "" ]; then if [ "$lastblocktag" != "$releasetag" ]; then ./check.sh ./commonchain.sh && exit fi if [ -f justupdated.now ]; then rm justupdated.now echo "This commonchain has been updated just now; from block $prevblock to $lastblock!" echo "Its advisable to run 'commonchain validate' in order to verify this update is legit." echo "--------------------" fi echo "$commonchainversion" echo "Type 'commonchain --help' (without quotes) to see a list of available commands." echo "--------------------" echo "gitrepo: $gitrepo" #test echo "Latest registered release: $lastblocktag" echo "Latest release: $releasetag" fi if [ "$1" = "latest" ]; then if [ "$2" = "" ]; then echo "Latest block is: $lastblock" fi if [ "$2" = "--plain" ]; then echo "$lastblock" fi fi if [ "$1" = "previous" ]; then if [ "$2" = "" ]; then echo "Previous block is: $prevblock" fi if [ "$2" = "--plain" ]; then echo "$prevblock" fi fi if [ "$1" = "validate" ]; then ./validate.sh fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/commonchain.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/justupdated.now ----> --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/justupdated.now --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/Tasks.txt ----> --------------------------------------------------------------------------------------------------------------------------- init in folder + list commonchains no need to detect if file exist to append BrightID validators (uses reputation instead of tokens) CommonPoint is a precursor to OmniLink kinds of commonchain: github, urlsh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh QmVoGaTVUVzgHEwyyiKsYcQG36AFZezb1kvGEFPwYsyN92 sh -c "$(curl -fsSL https://starship.rs/install.sh)" Qmf1XqY9vjU1yHDwEPj3hFBWJqtwGeUyoWPR77kYA7f65D sh <(curl -L https://nixos.org/nix/install) –no-daemon QmX5Jp4JtCSjaKj1efdaT31dRZiivGKz6qf3kHoCKRb2W4 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash QmPcQV6uQvAH5nESBhRX1B4kXgdcSNCxt1ivFVy5bgiMJs if commonchain type is github, support more than 1 release files gitrepo="ipfs/go-ipfs" https://github.com/$gitrepo/releases/download/$releasetag/go-ipfs_$releasetag_linux-386.tar.gz https://github.com/$gitrepo/releases/download/$releasetag/go-ipfs_$releasetag_linux-arm.tar.gz https://github.com/$gitrepo/releases/download/$releasetag/go-ipfs_$releasetag_linux-arm64.tar.gz - At checking version, display two - app and this commonchain, if it is identified - Check this commonchain type (also contain gitrepo if type is github-releases) and firstblock - Install system-wide - Wizard to create a new commonchain (stored in /home/.commonchain, folder named with 0.json CID) gitrepo="wealdtech/ethereal" https://github.com/$gitrepo/releases/download/$releasetag/ethereal-$releasetagnov-linux-amd64.tar.gz https://github.com/$gitrepo/releases/download/$releasetag/ethereal-$releasetagnov-linux-arm64.tar.gz gitrepo="ipfs/ipfs-desktop" https://github.com/$gitrepo/releases/download/$releasetag/ipfs-desktop-$releasetagnov-linux-amd64.deb https://github.com/$gitrepo/releases/download/$releasetag/ipfs-desktop-$releasetagnov-linux-x64.tar.xz gitrepo="floating/frame" https://github.com/$gitrepo/releases/download/$releasetag/frame_$releasetagnov_amd64.deb gitrepo="godotengine/godot" https://github.com/$gitrepo/releases/download/$releasetag/Godot_v$releasetag_x11.32.zip https://github.com/$gitrepo/releases/download/$releasetag/Godot_v$releasetag_x11.64.zip gitrepo="nushell/nushell" https://github.com/$gitrepo/releases/download/$releasetag/nu_0_40_0_linux.tar.gz (have to replace "." to "_" in $releasetag) gitrepo="johnnesky/beepbox" https://github.com/$gitrepo/releases/download/$releasetag/BeepBox_4_0_1.zip (have to replace "." to "_" in $releasetag) - Init service for periodicaly running check.sh https://github.com/gohugoio/hugo/releases https://geth.ethereum.org/downloads/ - Option to pin file - From latest block, traverse into previous blocks (optionally, to fully validate) - With ETH adress, sign if this address has been compromised and tell frnds - Validate comparing with trusted DAOs' ENS (genesis and latest blocks) - Prevent updating when it wasn't checked for more than a day and there are previous blocks missing Lch: https://discuss.ipfs.io/ Are you ready for the next IPFS release? CommonChain are. -- Every commonchain watches for a specific release file (for example, every go-ipfs_*_linux-amd64.tar.gz). - At every new release, CommonChain receives the latest tag, downloads the file (such as go-ipfs_*_linux-amd64.tar.gz), verifies its CID, and stores all the infos (URL, CID, previous block) in a newly generated block. -- go-ipfs, files, ipld, multihash CommC https://addons.mozilla.org/firefox/downloads/file/3701081/ublock_origin-1.32.4-an+fx.xpi CommonBytes+CommonChain for UniStore: Instead of serving/downloading a whole XPI/APK file, use its internal files that are linked (OmniLink) with the bundle/package. (input/output) Next challenges: dl yt vd and verify with CommonPoint. When hash changes, turn into CommonChain. CommonPoint for NFTs --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/Tasks.txt --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/check.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e tmp="$(($lastblock + 1))" cat > $tmp.json << ENDOFFILE { "prevblock": "", "tag": "", "url": "", "ipfs": "" } ENDOFFILE tmp2="$(ipfs add -q --only-hash ./$lastblock.json)" contents="$(jq ".prevblock = \"$tmp2\"" $tmp.json)" && \ echo "${contents}" > $tmp.json tmp2="" contents="$(jq ".tag = \"$releasetag\"" $tmp.json)" && \ echo "${contents}" > $tmp.json filename=$(jq -r '.fileprefix' 0.json)$releasetag$(jq -r '.filesufix' 0.json) freshurl="https://github.com/"$gitrepo"/releases/download/"$releasetag"/"$filename contents="$(jq ".url = \"$freshurl\"" $tmp.json)" && \ echo "${contents}" > $tmp.json wget -q $freshurl tmp2="$(ipfs add -q --only-hash ./$filename)" contents="$(jq ".ipfs = \"$tmp2\"" $tmp.json)" && \ echo "${contents}" > $tmp.json rm $filename tmp2="" && filename="" && freshurl="" && tmp="" echo -n >justupdated.now --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/check.sh --------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- /media/daniell/B/git/Plasmmer/cmnchn/validate.sh ----> --------------------------------------------------------------------------------------------------------------------------- #!/bin/bash -e echo "Validating..." echo "[1/4] Fresh URL vs. latest block's URL:" filename=$(jq -r '.fileprefix' 0.json)$lastblocktag$(jq -r '.filesufix' 0.json) freshurl="https://github.com/"$gitrepo"/releases/download/"$lastblocktag"/"$filename echo "$lastblocktag" if [ "$(jq -r '.url' $lastblock.json)" = "$freshurl" ]; then echo "Done! There's a match!" echo "Validation 1/4 passed." echo "[2/4] latest block's URL vs. IPFS CID:" echo "Downloading release file from Fresh URL..." wget $freshurl echo "Checking for package integrity..." # if [ "$(ipfs add -q --only-hash ./$filename | ipfs cid base32)" = "$(jq -r '.ipfs' $lastblock.json)" ] if [ "$(ipfs add -q --only-hash ./$filename)" = "$(jq -r '.ipfs' $lastblock.json)" ] then echo "CID/Hash is the same from requested and the downloaded file, so the download is ok." #tar -xzf $filename echo "Done! There's a match!" echo "Validation 2/4 passed." echo "The latest block seems valid! But, next step..." echo "[3/4] Validating first block with genesis block:" if [ "$(ipfs add -q --only-hash ./1.json)" = "$(jq -r '.firstblock' 0.json)" ] then echo "Done! There's a match!" echo "Validation 3/4 passed." echo "[4/4] Previous block's hash:" if [ "$lastblock" -ge "2" ] then if [ "$(ipfs add -q --only-hash ./$prevblock.json)" = "$(jq -r '.prevblock' $lastblock.json)" ] then echo "Done! There's a match!" echo "Validation 4/4 passed. Traversing into all previous blocks will be implemented futurely." else echo "Requested CID/Hash $(jq -r '.prevblock' $lastblock.json) is different from the result: $(ipfs add -q --only-hash ./$prevblock.json)." echo "Validation 4/4 failed. This commonchain is corrupted in the last, previous or more blocks. Please search a way to fix." fi else echo "Validation 4/4 passed. Can't verify previous block because this commonchain is still at block 1. Wait until it reach block 2 or more." fi else echo "Requested CID/Hash $(jq -r '.firstblock' 0.json) is different from the result: $(ipfs add -q --only-hash ./1.json)." echo "Validation 3/4 failed. This commonchain is corrupted. Please search a way to fix." fi else echo "Requested CID/Hash $(jq -r '.ipfs' $lastblock.json) is different from the result: $(ipfs add -q --only-hash ./$filename). Your download is corrupt. Please try again." echo "Validation 2/4 failed." fi rm $filename fi --------------------------------------------------------------------------------------------------------------------------- <---- /media/daniell/B/git/Plasmmer/cmnchn/validate.sh ---------------------------------------------------------------------------------------------------------------------------
Asking to donate 37 eth to @TheGivingBlock: 5 days 6 hrs ago (Apr-12-2022 05:32:48 PM +UTC)| https://etherscan.io/tx/0xec0b4b5933bc867e1deed0419bb93de6a546fc727e688e4f6c656fcf9c4f0fbd 37 eth donation made; 5 days 4 hrs ago (Apr-12-2022 06:58:26 PM +UTC) https://etherscan.io/tx/0x36cda17b6c182cfcf37690b2911255eb9ba1decd9b8e6c0c179bb86ec42a65dd NotBanksy is a movement. New art next week. BS15HH // notBanksy // 20 // W25RU 2.0 https://tinyurl.com/yraf3t7a
What strip-mining is to nature, the art market has become to culture. BS15HH // notBanksyFinale // 20 // W25RU 2.0 https://tinyurl.com/yraf3t7a 20 oil on canvas paintings and you only saw 3. 60 // 248 // 738
*Did you hang around long enough for the fun? 824 revealed, the rest next week. This revolution is for degenerate purpose only. BS15HH // notBanksy 20 // W25RU 2.0 60 // 248 // 738 https://tinyurl.com/yraf3t7a
SOMETIMES THE RIGHT THING TO DO IS THE WRONG THING BS15HH // NOTBANKSY 164 // 20 // W25RU 2.0 DID YOU HANG AROUND LONG ENOUGH FOR THE FUN? TICK TOCK, TICK TOCK. HTTPS://TINYURL.COM/YCKV3PXM NOTBANKSYFINALE
The great art swindle. A great way of fucking with the art market. Glad I still own two. BS15HH // notBanksy // 164 // 20 // W25RU 2.0 Art reveal time: https://tinyurl.com/yckv3pxm Like a half-remembered dream, yet on my heart. Pause Traveller on thy way. Who will be the final winner? QmctVjBwdtmyfUH8BkmqG86Mcvky7MCQsoLXc2Nh7Wnsyq NotBanksy is not Banksy. Crude enough?
A movement. Like a half-remembered dream, yet on my heart. Pause Traveller on thy way. BS15HH // notBanksy 164 // 20 // W25RU 2.0 // The ghosts of 2005 https://tinyurl.com/yckv3pxm NotBanksyFinale, NotBanksy everywhere.
150 of 112