#json file format
Explore tagged Tumblr posts
taohun · 2 years ago
Text
holy shit telegram export chat is so good 
2 notes · View notes
hanszoe · 2 months ago
Text
i think i'm too tired to work much on my image viewer build tonight but i'll try in the morning
0 notes
lordsardine · 2 years ago
Text
.
1 note · View note
valeriehalla · 4 months ago
Note
mwah mwah mwah mwah mwah I just found your VN and it's so cute and arresting and so full of nonbinary longing I'm absolutely in love already and it's kinda inspiring me to do the scary job of opening up a word doc and try writing some of my own stuff for the first time ever
also wrt aster i love love love love love the idea of being freed from agab. just... can't remember. who cares. no longer having to measure up to a gender metric or constantly minimizing your male shoulders or female hips and worrying about your ratios or presentation - and just relax and enjoy it instead of treating it like a constant chore of maintaining a dozen spinning plates to avoid being "found out". freed from presentation pressure. mwah.
also also as a fellow web developer I'd love to hear more about your stack for ssg - gatsby? svelte? vite? 93 nested imported html docs? one really really big div? I ask because while I don't know if I'll ever have the chops for music production, reading and discovering that inline music player absolutely tickled me, both narratively and as a developer, what a delight, so so so good
My “stack” ... hmmm. “Stack” .................
So, for the main website I just used “Lektor”, which I picked out of a hat on the basis that it was python-based and could do the one thing I cared about (HTML templating). But the CURSE/KISS/CUTE reader is coded from scratch. It is a single-page app, and it loads and displays story content by grabbing the HTML from a JSON file I call the “story file”. The JSON in turn is created by a parser that I wrote in python that parses a specially-formatted markdown file which I also confusingly call the “story file”. The script format for this latter file is slightly custom but is mostly just “normal markdown but I repurposed code ticks as a macro format”:
Tumblr media
The music player is pretty rudimentary and just offloads all the complicated business to howler.js.
It’s a funny patchworked leaning tower of python but it gets it done and gets it done entirely client-side and that means I don’t have to dip even one of my toes into the haunted pool of server-side web development =w=
62 notes · View notes
orteil42 · 2 years ago
Note
Why do achievements and upgrades not use run length encoding in the save file??? Why??? Why??? I needed those 512 bytes
the save system in cookie clicker was written 10 years ago back when i was still Getting Silly With It. it is my own little format full of goofy attempts to minimize save files size so they can be comfortably copypasted. at one point i was trying to shrink the upgrade/achiev bitmasks (long strings of 0 if locked, 1 if unlocked) by condensing multiple bits into fewer characters but something in there wasn't surviving the base64 conversion and saves started getting randomly corrupted if a specific pattern of things you unlocked happened to combine into some cursed symbol i yet have to identify. to answer your question: there is so much worse you should worry about. i am a self-taught programmer and should not be trusted around computers, yet here we are. these days all my new projects use JSON files for saving because i've learned to be humble
718 notes · View notes
jbird-the-manwich · 2 months ago
Text
made a database of the book of psalms (150 entries) and their uses, as a single html page for offline access and JSON.
Tumblr media
The html version will check for theme.css and background.jpg in its directory for theme override
Current version is ~270kb as a single html page. Will update later with split files for legacy browsers. HTML is currently formatted with phone screens in mind
you can get it here
46 notes · View notes
cyle · 1 year ago
Text
i love reading through other platforms' data exports of what they have on me.
for example, Discord's data export has a few big JSON files of "analytics events", that seem to accidentally contain some things that are probably not really analytics events.
there are these fun "prediction" JSON blobs in a different format than the events...
one of them is trying to predict my gender. "predicted_gender: male", over and over. and what's really hilarious is that it logs its estimated accuracy and the timestamp of the attempt. so i can see that in late 2022, discord kept started to try to predict my gender, and it swung from 91% confident i was male to only 71%, and has been doing this prediction process almost daily this year (2023), ranging from ~70% confidence to ~92% confidence.
another is trying to predict my age, and has waffled between "25-34" and "35+" for a year. similarly with a wide range in confidence. makes me wonder what data modeling they're doing to make that prediction...
relatedly, it's always fun to look at the different event names a platform is logging, to get a taste of how granular they're tracking people... here are some fun ones:
start_listening
tooltip_viewed
context_menu_link_opened
keyboard_shortcut_used
premium_upsell_viewed
app_native_crash
jump
remix_surface_exit_modal
nuo_transition
there are over 400 different kinds of events logged in my data dump, and over 419,000 of these events logged. kinda scary!
208 notes · View notes
smashorpassobjects2 · 7 months ago
Text
Tumblr media
34 notes · View notes
smash-or-pass-objects · 1 year ago
Text
57 notes · View notes
thornsent · 2 years ago
Text
YOUTUBE EXODUS MASTERPOST
fuck youtube and fuck their anti-ad blocker policy. aside from advertisements being a capitalist nuisance where we are the actual product being sold, ads which contain flashing lights or otherwise triggering material can and do harm people, and youtube's decision to ban ad blockers will impact these folks the most. here I'm gonna talk about what I use to mitigate this bullshit!!!
DESKTOP - FREETUBE
Ublock and Youtube are basically in an arms race right now, and the instability and inconsistency of FF working with ad blockers isn't great. Today, I can't watch anything on desktop, it's totally blocked for me as long as I'm logged into my account.
I would recommend switching to Freetube, which is a client for youtube that runs on your computer, ad-free. You're able to import your subscriptions and search history, and a proper playlist function is in the works.
In order to export this stuff for Freetube, you'll need to log in to youtube and click on your icon. In the list that pops up, click "In order to export this stuff for Freetube, you'll need to log in to youtube and click on your icon. In the list that pops up, click "Your data in Youtube".
Tumblr media
From here, click on "Download Youtube data" on the dashboard card. You might have to click "see more" for this option.
Tumblr media
This is where we get particular. First, hit the button that says "All youtube data included"
Tumblr media
In the list that pops up, deselect everything except for history, subscriptions, and playlists. Then click okay, which will return you to that ^ page above. You then need to click "multiple formats", scroll down to history, and change the format to JSON.
Tumblr media
Once you've done that, you can click "next step" and decide if you'd like for the data to be emailed to you or put in your dropbox or whatever. all the files will be in a .zip folder, so extract them somewhere convenient, and if you plan on using Newpipe for your mobile device, KEEP THAT .ZIP FILE!
Once you've installed Freetube, go to settings -> data settings and import your subs. the file for this will be nested in a folder named "subscriptions" in the .zip file you extracted. Do the same thing with importing your history, but make sure to select the file that's named watch_history. importing playlists is not yet a feature for freetube, but I recommend downloading yours anyway.
From there, you're free to watch desktop Youtube, addless as God intended.
MOBILE - NEWPIPE
I've used newpipe for years now, and it's a game changer. You can download as audio or video files, play in the background with your phone locked, and still have your subs and playlists. it's lightweight and has a great UI.
The great thing about importing your subs and other info to Newpipe is that it's less fiddly. Go to your subs, and then tap the three dots in the right upper corner. Then tap import from, and select Youtube. Select the .zip file from earlier (you saved it, right?) and it should import all your stuff. If this doesn't work, Newpipe provides instructions on alternative ways to import your subs/playlists/etc on-screen.
Don't subject yourself to advertisements. You deserve better. Get Freetube, Get Newpipe, and if other people have suggestions, feel free to add it to this post!
142 notes · View notes
awizardmostkitty · 12 days ago
Text
would it be possible to like... ask for programming advice? there's some really smart ppl around and to be honest I've confused myself a bit too much perhaps haha. explaining more below the cut because it's a bit of a lengthy explanation.
essentially I'm trying to parse an ID string into the way I'm formatting my json files. the format looks like this:
{
"name" : (name, string),
"id" : (id, string, they look like "e[a]" or "d[e[a]]^o.d.o" or something like that, there's a lot of variety),
"op_count" : (int, the number of individual runes combined to create this one. Each rune could be made up of smaller runes, so if I know which runes are in it I can reduce the op_count by combining those rather than each one individually),
"operations" : {
"base": {
"path" : (filepath to that rune's json, optional)
(if "path" isn't here, then either it already has the json, or else it's empty, as is the case for a combination like "('[n.k.n.k]', o)" which begins with a group rather than a single rune)
},
"op": (either one or sometimes two characters specifying which operation is performed),
"mod" : {
(Follows the same structure as "base")
}
}
there's a couple more quirks to this. If there's multiple operations, then each operation and mod will be "op#" and "mod#" with # being which operation it is. Grouping symbols like "[", "(", "'[", or "'(" follow a slightly different format for applying an operation, they instead become part of the mod, without really advancing the count of the mod# unless it's something like a group within a group. Here's an example of a completed one, I've done a number of these by hand which is why I have it:
{ "name": "Laughing", "id": "('[n.k.n.k]', o)", "op_count": 3, "operations": { "base": {}, "op1": "", "mod": { "type":"()", "mod1":{ "type":"'[]'", "mod1":{"path":"res://scripts/json/yes.json"}, "op2":".", "mod2":{ "path":"res://scripts/json/yes.json"} }, "op3":",", "mod3":{ "path":"res://scripts/json/action.json"} } } }
Because I've done a number of these by hand already, I'd rather not change the format, but if it's absolutely necessary then I'll push on through.
I've gotten it so that I have a list of each composite rune ID as well as a list of how many operations have been performed by the time that ID appears in the list, and a second list of each operation (opening and closing a group are considered separate operations until they're in the json, so that I can figure out where a group ends) and how many rune IDs have been seen by the time that operation is performed.
This sort of allows me to cross reference the list to get an idea of what happens where, but I've driven my brain right out of my head trying to figure out how to use these to get a string like "a.(b,c)" to turn into something like:
{
"name" : (name),
"id" : "a.(b,c)",
"op_count": 2,
"operations":{
"base": { (data for "a") },
"op1": ".",
"mod": {
"type" : "()",
"mod1": { (data for "b") },
"op2" : ",",
"mod2": { (data for "c") }
} } }
I don't know if I've made any sense at all, I'm not a bad programmer I promise I've just spun myself in circles over this 😅
no need to worry about where I get the data for "a," "b," and "c," that part's taken care of. Just need to parse the id string into the json format if I can.
12 notes · View notes
voltaspistol · 4 months ago
Text
Tumblr media Tumblr media
13 notes · View notes
archiveyourblog · 29 days ago
Text
How to back up your Tumblr blog
Not sure if all of you heard the news, but Wordpress laid off 16% of its staff, which happened to include senior tumblr staff like cyle. According to 3liza, the amount of staff running tumblr is about 25.
Welp. Will Tumblr finally die? I don't know. It's pretty likely, since this site costs millions to run and to host all this content, but I'll stay till the end. But I backed up my blog, with the help of a post that can't be reblogged rn.
you can reblog this one though.
Quoth butchlinkle: "In your blog settings you have the ability to initiate a blog export, and this will generate a backup for your blog.
Fair warning though, if you’ve been on the platform for a long time this archive is likely to be quite hefty in file size. This blog I have had for 5 years with 22k posts, and the export from tumblr came to be 48GB. My previous blog I made in 2011 and has 95k posts, so needless to say I did not use tumblr’s built in export to back that one up.
If you want more control over exactly what you back up from your blog, I recommend that you use tumblr-utils instead. It allows you to backup specific tags, post types, and to ignore posts that you did not create (reblogs where you’ve added a comment count unfortunately do not count unless you use the older version of the script made with python 2.7).
To use it:
download and install python
create an application on tumblr to get an api key
create a folder where you would like to save your backups and right click to open it in the terminal/command prompt, or type cmd.exe in the address bar from inside that folder
Tumblr media Tumblr media
Backing up just my original posts from this blog with this command came to 632MB rather than 48GB, and also gave me the option to save my posts in JSON format which will be useful for converting my posts to a new format for self hosting.
On that note I’m currently looking into figuring out a simple (and ideally free) way of self hosting a static site blog that utilises activitypub, and also converting my old posts to re-host on said blog.
This post series by maho.dev on implementing activitypub with any static site is my primary source of guidance atm if you also want to try figure that out yourself, as well as having an explanation for why you’d even want to do this if you don’t already know
but if tumblr goes down before I get things sorted and write up a post about it then i’ll be reporting back on it via my bsky, mastodon, and toyhouse accounts
if you dont have an account on any of these I’ll also be sharing an update via my personal site’s RSS feed, link of which includes an explanation of what RSS is and some feed readers you can use, I highly recommend checking it out as getting a feed reader is going to be the best way you can stay connected with people if they scatter across the internet!
tldr: download tumblr-utils to backup your blog more efficiently, introduce yourself to RSS and get a feed reader to stay connected with people, consider saving mine so you can find out how to self host your blog later if tumblr goes down."
here's a guide from the notes: https://docs.google.com/document/u/0/d/1yBWlk-yEgpSoEh3c9oLhz_kbLtUGqbqzOpCtJsvQgjI/mobilebasic?pli=1#h.u9vj7pezwpcy
Back up those blogs. This was way faster than trying to use Webarchive, and webarchive seems to be only good for saving text, audio, and video, because it saved none of the images. And remember: I did not write this guide, and I do not know a thing about coding or fixing bugs.
8 notes · View notes
wanderingaldecaldo · 9 days ago
Text
I figured out last night that some xl files are just json files.
I'm using the remover to do some world building for my OCs and needed to edit one of the removal scripts but it was one giant wall of text in VS Code. I added a json extension thinking I could at least format it to make it easier to find what I was looking for. Imagine my surprise when VS Code turned it into perfectly formatted and valid JSON code.
It's so obvious. And now that I think about it, the other xl files are just yaml files. AXL can tell based on the formatting which is which.
AXL is so fucking cool.
6 notes · View notes
t52b · 3 months ago
Text
Heart Toy mayor update continuation
So now onto the other two parts
The album builder is used to build albums for the joi suite later the joi suite can only use the albums built here so its a pre requisite to build albums for later useI
mage Fetching from Image Boards: Fetch random images using tags from popular image boards: Danborou, R34, Realborou, The Great Image Board, and e621. Input your desired tags, separated by spaces, and press the button to fetch images. If the image cannot be found or if the HTTP request fails, an error will be displayed, and the fetch button must be pressed again to retry.
Invalid JSON Errors: If an invalid JSON error occurs, it typically means no image was found for the given tag on the selected site. Try fetching from another site or use a different tag. Album
Management: Create new albums by inputting an album name and saving images directly to them. If no album name is provided, images are saved to the root of the app's storage (counted as an album).
Image Selection from Local Storage: Pick images from your phone's local storage using the file picker. Save them directly to an album or create a new album.
Direct URL Saving: If you have the direct URL to an image, input it and save the image to your selected album. The process is easier on Windows, but somewhat difficult on Android. Album Deletion: Delete selected albums, but requires multiple clicks if the folder is not empty.
File Organization and Limitations: The app uses Android's file system for album management, which can involve some manual navigation (copying and pasting files into albums using the file picker). The app remembers the last location when accessing files via the file picker, making it easier to pick from specific folders. on pc this is much easier as the file explorer can access the persistent storage and copy images with control c control v
Tumblr media
Joi Suite Feature List:
Interval Creation & Editing
Interval Object: Tempo: The tempo (beats per minute) for the interval.
BeatTightness: Controls how tight the beats feel, influencing the spacing between beats.
EndTempo: The tempo the interval will gradually reach by the end.
TempoAcceleration: How quickly the tempo changes during the interval.
BeatNumber: The number of beats within the interval.
SyncopalGalop: A setting that modifies the rhythm to alternate 1 and mltiple beat per metronome tick.
Duration: The length of time this interval will last.
Imageshiftperiod: The speed at which images will change during the interval.
Imagefadein: Controls how quickly images fade in.
EndPauseLength: The length of time the pause lasts at the end of the interval.
Interval Editor Window:Input fields for each of the interval parameters (Tempo, BeatTightness, EndTempo, etc.). Add Interval Button: Creates an interval based on the current input and adds it to the interval list. Suggest
Random Values Button: Generates random values for the parameters, which can then be added as a new interval. Range-Based Interval Creation: Enter two values for each and all parameter (in an "x-x" format) to generate random intervals within that range. Interval List: Displays all created intervals as cards.
Card Swap: You can swap the order of two intervals in the list by clicking on their cards.
Delete Last Interval: Removes the most recently added interval card from the list.
Sequence Creation & Management:
Sequence: The collection of intervals you’ve created. You can give it a name, save it, load it, or delete it. Once you’re happy with your sequence, you can start it by pressing the Start Button.
Sequence Start: The interface allows for fullscreen mode once the sequence starts. A small blinker will appear in the bottom right corner, showing the current BPM. The color of the blinker changes based on the rhythm:
Green: Downstroke
Red: Upstroke
Black: after-stroke pause
Inter-Sequence Notifications: before each interval ends, a 5-second message will fade in, showing the tempo, tightness, and beat pattern of the next sequence. If there’s an intermittent pause, the screen will fade to black, and text will instruct the user to breathe, relax, and wait for the pause duration.
Image Display & Album Integration:During the intervals, images from the selected album will fade in. The image transition speed is controlled by the Imagefadein parameter. Images will shift at the speed defined by Imageshiftperiod.
Album Selection: You can change the selected album at any time during the sequence. The next image will fade in from the newly selected album once it’s changed.
Timing & Pause Features:
End Pause: At the end of the interval , a pause will occur. If the inteval has an end pause, the screen will fade to black and instruct the user to breathe and wait. The countdown will guide the user through the pause.
Infinite Inteval: The last interval of the sequence will stretch infinitely until the user stops the sequence. Every 300 seconds (or configurable time), a warning will notify the user that the sequence is ongoing.
Overall User Experience:Interactive and rhythm-driven experience, combining beats, tempos, and visuals from the album. Ability to customize and randomize beats, tempos, and image transitions, creating a personalized rhythmic experience. Seamless transitions between intervals and a clean user interface that helps focus on the rhythm while enjoying the accompanying imagery. for a bit more detailed explanation consult the help menu in each section
Tumblr media
Once Again i state that these parts can access adult image boards thus the app is now considered NSFW and ADULTS ONLY because of these additions
19 notes · View notes
noctswife · 5 months ago
Text
Got thinking about my dream Kaimei-Focus Proseka Event and naturally came to wonder how hard it would be to create your own, "playable" project sekai story.
After doing some digging, it's definitely viable!
sekai.best provides the characters' live2d models and animations, and you can even download all this data which includes what I assume are the json files that make the animations work, as well as the textures. I've never actually worked with live2d before, but from what I can tell this seems to be the case.
Getting the textboxes is likely self-explanatory if you know how to path the json files for your format of choice, and so is adding the dialogue.
From there you can either A) Compile those animations and integrate them into a video (this AfterEffects plugin may be useful), which would have an end result akin to an event playthrough video, or B) Integrate the files into a visual novel engine of your choice (Ren'py notably has live2d support) to get a slightly more "playable" experience.
sekai.best also has the sound assets used in the stories, which, while I don't feel they're all that vital, are nice to have. You can even add the short voice fragments the characters use when the scene isn't fully voiced if you feel like it.
Then it's just a matter of making any CGs you want and adding them in.
I'm a bit too busy to do this myself, but if this inspires anyone to do so, feel free! (I just ask that you distribute the base framework/pathing/tools/etc for your format of choice so I can piggyback off your effort and make KAIMEI! HEAVEN! NOW! lol)
Someone could also theoretically compile all these available resources and make a generator similar to objection.lol -- sekai.best seems to be cooking up a live2d viewer for existing stories, and once that gets figured out, one could probably rework it into a story generator.
8 notes · View notes