Follow

Does anyone know what would be a good and fair way to do a giveaway on Mastodon? For example, Twitter has TweetDraw, which picks a random username out of retweets etc. Is there anything like it for Masto?

Hmm okay. It looks like I will have to take the "pls comment to enter" route and shake the list up on random.org. Since it has a lot of manual work potential, I will make the giveaway shorter on Masto than on the Birdsite (probably 1 week to enter vs. 3-4 weeks on bird). I'm sorry :/

Or I'll make it short on birdsite too idk I need to decide. 3-4 weeks did drag on last year, didn't it?

Two weeks for both???

Annnnd here we go, train of thought tooting πŸš‚

Looks like I should be able to count the boosts with @zatnosk 's tool. I AM SO HAPPY. T_______T β™₯

manowar.social/@zatnosk/101738

@balrogboogie @dona

We did do a giveaway and the details on how we handled it are at https://ap.lollipopcloud.solutions/notice/9gWCzg37vHHnBryX6u along with the results.

It's a bit of additional overhead for tracking but lacking a bot... that was the best we could do while keeping things fair.

@dona Not sure if there's a tool, but you can put boosters in a spreadsheet, then draw a random number from random.org that would correspond to the row with the winner in the spreadsheet

@Gargron Ooh is there a way to extracts just the usernames that boosted a post? Do I need to download my data for that? I don't mind if I have to clean up the data a little, as long as it doesn't require copy-pasting each name by hand :'D

@dona @gargron if you click on the number of boosts a post has, you should get a page like this that you can copy/paste from:

@nightpool @Gargron Ohgod how did I not know this? I think this + random.org will end up being my solution for this! Thank you so much β™₯

@dona @nightpool Hm on second inspection I think it might not currently scroll past the first 40 items, so it's not ideal... Sorry about that

@Gargron Aww noooo :( Thank you for checking it, though. I'll keep trying to find a solution πŸ€” (but all signs point to manual copy-pasting from notifs, RIP </3)

@dona if you have access to the DB you can just query all replies or boosts on a post, filter duplicates then use the random function to select a winner. This worked well for our last giveaway.

@james Hmm I am not a maintainer, so I don't think I have access to the database. Unless it's a part of the user data download thing πŸ€”

@dona @cloud did a giveaway recently, check their profile for the mechanics of how they did it

@emsenn @dona

We did do a giveaway and the details on how we handled it are at https://ap.lollipopcloud.solutions/notice/9gWCzg37vHHnBryX6u along with the results.

It's a bit of additional overhead for tracking but lacking a bot... that was the best we could do while keeping things fair.

@cloud Thank you for a clear explanation! β™₯ I was trying to figure out a way to draw from the boosts and avoid manual copy-pasting, but it's proving difficult...

Also aw man, I missed my chance to win some snazzy stickers! x)

@dona Yes, we evaluated a few options on the boosts side but ultimately had to go with direct responses...

There is probably a way to write a bot to track the boosts / grab them all once the giveaway ends but we haven't seen anything to help with that yet.

πŸ€—

🀞 your giveaway goes amazing!

@dona No but doing a giveaway sounds like a great Idea

@mediahydra I want to do a character portrait sketch giveaway but finding a way to pick winners on Masto seems like the most difficult part! Haha.

@dona That is very cool! How can I get a chance at qualifying for the giveaway?

@mediahydra I'm still figuring it out :( but most likely I will ask people to comment on a giveaway post because tracking boosts doesn't seem easy!

@gudu I'm not familiar with the bot - can I ask it to pick a random person that boosted a specific post, for example?

@dona
I don't work with it, but I think no. If I unterstand its description it doesn't work interactive. It boost its own follower. But ask its owner @gled
The bot say it has any commands.

@gudu Thanks! So far it seems picking a random boost is very complicated and my best shot is doing it manually πŸ˜‚

@gudu @dona fedbot doesn't track boosts, it boosts randomly a follower on the hour, but you could quickly write a bot to do that with Mastodon.py, just parse your notification timeline with a bot for boost notifications and store it in a csv, or be as fancy as you wish :)

@gled @gudu Thanks! You make it sound so easy, but I am an illustrator who doesn't know anything about programming, so it sounds really complicated to me :( I don't understand how to do it.

@dona how many boosts do you expect?

you do know that if you click on the boost icon you get a list of all boosters?

you can simply copy paste them to random.org/lists/ and pick the fist one that comes up in a randomized list when you click 'Randomize" button?

@dona also, I was able to play with the idea, install a commandline mastodon client 'toot' and display just the @ usernames of boosters of a status post.

I could 'pipe' that output to a file.txt ($ command > file.txt), or copy/paste to random.org

or even use shuf bash function:

$ toot reblogged_by 101732178187132764 | grep @ | shuf -n 1

(the number of the status can be taken from the URL in the web-ui)

(ps: I'm sorry, I can't remember if you are on linux or not)

toot.readthedocs.io/en/latest/

@luka I'm on Windows. I really, really don't understand coding, command lines and all that - I've already been told that it's easy to code a bot to fetch the boosts, but I don't know how!

@luka @InvaderXan I really don't know how many boosts to expect D: I actually never look at my boost # because it makes me anxious, lol, but anyway - Gargon confirmed that it may have trouble catching more than 40 boosts, so in that case I would have to manually track through notifications - which is still a lot of work, and I'd be concerned in the case a notif didn't go through or something T-T

@dona @InvaderXan

if you can install 'toot' comandline masto client, you're good!

@InvaderXan oh my l o r d

WHY IS MASTODON

I'm going cooky trying to figure this out dsalkdal;kda;;dllsksksksk;;;;;;;;

(Thank you for pointing it out, I did not think about it at all TnT)

@dona Hey, I've seen this thread pop up a bunch of times, and it seems pretty clear that there isn't a good tool for finding who boosted a post.

So I built a tiny webpage, that can take a post URL and makes a list of who boosted it, using Mastodons public API.

It might malfunction in weird ways, I haven't tested it that much, but it should work for most toots :)

zatnosk.dk/playground/reblogge

@zatnosk Ahhh thank you so much!! But... :( it confirmed what Gargon said, it only fetches 40 boosts (I tested it on this one which has 60 mastodon.art/@dona/10166531308)

Thank you again though ;~; :tialove:

@dona argh, dammit. I thought that was just a limitation in the webview. Ah well, it only took 15 minutes to build.

I wonder if there's some way to get the rest out via the API...

@zatnosk Yeah, I don't know why it's capped at 40 :C All of this sounds really complicated!

@dona It looks like it's because the API is paginated, so it only shows 40 at a time instead of potentially hundreds at once.
I think I can make my script work above 40.

@dona It works! Now it can find the next page, and will keep fetching until there's no more next pages.

So it should be able to list hundreds of boosts now!

zatnosk.dk/playground/reblogge

@zatnosk OH MY GOD YOU'RE A SAINT β™₯β™₯β™₯β™₯β™₯

@zatnosk I tested it with a few high boost number toots I could find and it seems to work fine! (The most was 140 which is pleeeentyyy I think)

(also, funny to notice - with one toot it missed two people, with the other it showed *one more*... I wonder what happened there!)

@dona hm, if you give me the urls I might be able to dig into what happens there later tonight :)

@dona @zatnosk oh interesting! zatnosk, do you mind me asking how you got past the 40 limit on the API,? the thing is I started to work on @randomdraw

@luka @dona @randomdraw sure! When there's more than 40 boosts, the API response includes a HTTP header called link with a paging URL for the next page. It's on the format

<https://instance/api/?something>; rel="next"

Sometimes there's also a rel="prev" value (it's is comma separated if they're both there), so it's important to detect that and not end up endlessly jumping back and forth between two pages.

(Nooo, I totally didn't learn that by doing it..)

Sign in to participate in the conversation
Mastodon.ART

Mastodon.ART β€” Follow friends and discover new ones. Publish anything you want & not just art of all types: links, pictures, text, video. All on a platform that is community-owned and ad-free. Moderators: @Curator @ChrisTalleras @EmergencyBattle @ScribbleAddict @Adamk678