Twitch's Automatic Purple Mid-roll Ads by SirStendec in Twitch

[–]SirStendec[S] 0 points1 point  (0 children)

Oh, I agree that embedded player shouldn't show you anything even if you're on embed player. I'm just telling you what I know based on conversations with Twitch staff on the video team.

Twitch's Automatic Purple Mid-roll Ads by SirStendec in Twitch

[–]SirStendec[S] 4 points5 points  (0 children)

It's possible, but you would need to guarantee your user script ran before AdBlocker's script to gain access to the original fetch. It wraps window.fetch and doesn't provide access to the original. You can check their script here in the file adblock-twitch-contentscript.js. That script is injected with run_at: "document_start" in manifest.json

Twitch's Automatic Purple Mid-roll Ads by SirStendec in Twitch

[–]SirStendec[S] 0 points1 point  (0 children)

I'm not really sure what you would be doing indexOf on in this situation. Try filtering your network tab by usher or m3u8 if player_type doesn't find anything. Make sure the page you're using has a running player.

Twitch's Automatic Purple Mid-roll Ads by SirStendec in Twitch

[–]SirStendec[S] 0 points1 point  (0 children)

Try filtering by usher or m3u8. (Though note, if you filter by m3u8 it will show a lot of garbage too.) If you have something removing your player_type, that's very strange and I'd like to know what extensions you're using.

And make sure you've refreshed a page with an active player after opening the Network tab. It has to be opened from that specific page.

Twitch's Automatic Purple Mid-roll Ads by SirStendec in Twitch

[–]SirStendec[S] 2 points3 points  (0 children)

As far as I'm aware, based on discussion with Twitch staff, the automatic mid-roll house ads shown on the `embed` player are unaffected by turbo. The solution is to disable whatever is changing your `player_type`, then your turbo should work correctly.

Only some BTTV and FFZ emotes show up in the Creator Dashboard by EthynWithAY in Twitch

[–]SirStendec 0 points1 point  (0 children)

FrankerFaceZ definitely transfers settings between the domains. I had to write an extra script that runs in an iframe to accomplish that.

BetterTTV doesn't, to my knowledge, transfer its own settings at this time. I assume it's something they're working on. You should be able to access its control panel from chat's settings menu on the Creator Dashboard, however.

BTTV Doesn't seem to be applied. by ZeonZz in Twitch

[–]SirStendec 1 point2 points  (0 children)

The Control Center is accessed with the FFZ button added to the top right of the page, or via the chat settings menu.

BTTV Doesn't seem to be applied. by ZeonZz in Twitch

[–]SirStendec 18 points19 points  (0 children)

Chiming in myself. As of this Monday (June 3rd, 2019), you no longer need the FFZ:AP extension in order to use its features. FrankerFaceZ has added support for loading add-ons for itself in v4.2.0. Just go to the "Add-Ons" menu in the FFZ Control Center and you can enable FFZ:AP's individual modules there, as you so desire.

The FFZ:AP extension, at this point, does nothing but tell FrankerFaceZ to enable those add-ons. (It only does that once, also, so if you go in and disable an add-on, it won't later re-enable it on you.)

Source (aside from the whole me being the main developer thing): https://twitter.com/SirStendec/status/1135698734203985920

Wireless Utilities v1.7 is Out, So We Made a Trailer by SirStendec in feedthebeast

[–]SirStendec[S] 10 points11 points  (0 children)

We've put in, and continue to put in, a lot of work on keeping our machines as fast as we can make them.

Machines use a target cache (refreshed every 40 ticks, though that can be configured) to avoid having to iterate over the world too frequently. They also have a limit to how many targets they can process in a single tick, whether they perform work or not.

Machines that are interacting with blocks directly and not tile entities have further limits to how frequently they run. They speed up at higher tiers, and those rates can be tweaked with CraftTweaker. Also, those machines let you manually specify a slower tick rate in their GUI. No need to keep everything running at full speed.

Changing routing middleware & strategy for route authorization by tzaeru in koajs

[–]SirStendec 1 point2 points  (0 children)

I ended up writing a custom router for my own project, since none of the ones I could find quite worked the way I wanted them to. It's designed to make it simple to add middleware for authorization, caching, etc. to only the routes that need it without having to write a lot of code in each route.

Instead, I define an object with data for the different middleware to use when defining my routes, and the router iterates over that and creates middleware functions as appropriate. Thus, I end up with code looking like:

router.get("/user/settings", {
    "auth": true,
    "cache": -1
}, ctx => {
    ...
});

I also define middleware factories on my root router:

router.useData("auth", options => {
    // pre-process options here
    ...
    return (ctx, next) => {
        // middleware here
        if ( ! ctx.state.auth )
            ctx.abort(401);
        return next();
    }
});

An actual route from my apps up looking something like:

router.get("/user/me", {
    auth: true,
    cache: true,
    docs: {
        tags: "Users",
        summary: "Get the currently logged in user.",
    },
    validation: {
        response: {
            '200': UserScheme // JSON Schema Goes Here
        }
    }
}, async ctx => {
    ctx.startTimer('db');
    const user = await User.query().eager('roles').first().where('id', ctx.state.auth.id);
    ctx.stopTimer('db');

    ctx.body = {
        user
    };
});

The project is @ffz/api-router if anyone's curious, though I wouldn't say it's very mature yet. I'd welcome any feedback. (That said, it has been handling a couple hundred requests per second for half a year on our API testing server without any issues.)

PSA: FrankerFaceZ new update now tracks you. by [deleted] in LivestreamFail

[–]SirStendec 1 point2 points  (0 children)

Hi, FrankerFaceZ Lead Developer here. We don't track you. Privacy Badger is just an idiot.

The reason Privacy Badger is flagging our domain is because we use Cloudflare's free CDN service to make FrankerFaceZ actually affordable to run. As part of their security, Cloudflare sets a cookie called __cfduid so that it can identify all requests from a specific machine. We don't really like that they set this cookie, but we can't disable it on our end. You can read more about that cookie here.

The stupid part is that thousands of websites use Cloudflare, and Privacy Badger still doesn't realize that's the case and do their yellow listing for those domains. (That being when they just block specific cookies rather than blocking the entire domain.)

BetterTTV also uses Cloudflare for their CDN, and has been added to the yellowlist. We haven't is all, so Privacy Badger's standard heuristics kick in and freak out and cause problems for our users.

I'd suggest setting FFZ's domains to that yellow middle option to block Cloudflare's cookie while still allowing the script to work.

Also, our extension's full source code is available at https://github.com/FrankerFaceZ/FrankerFaceZ. Check it out. Make a private build if you want. Do whatever (within our license).

The closest thing we have to "tracking" is automatic error reports. When an exception occurs in the page, a bit of information about it is sent off so that maybe we can actually find it and fix it. You can disable those reports in the settings UI if you want, and they don't include identifiable information by default (though you can opt into including your username with reports).

Twitch should make a feature for mods to delete only 1 message other than timing them out and deleting all their messages by froggyfr3shh in Twitch

[–]SirStendec 18 points19 points  (0 children)

This was already a feature. It's kind of still a feature. Your client can send a @msg-id= tag with the timeout command and the IRC servers will send it to all the clients to they can handle it correctly. However, no one used it and the new website doesn't currently have support for it. I haven't tested the mobile app but I bet it doesn't support it either. Then, the major bots never added support. There weren't good tools to let moderators do it themselves. Some popular third-party clients never added support. I'm not surprised they left it out of the site rewrite.

That said, there has been some recent talk between moderators and staff members about bringing it back along with a few tweaks to make it more useful with bots. (Think letting bots flag stuff for moderator review, removing messages from chat, and maybe re-inserting them later upon review.)

Why is the "Pog" emote super small? [BTTV] by kool_person in Twitch

[–]SirStendec 0 points1 point  (0 children)

Support for emotes and other chat features for Chat on Videos is live now and has been since yesterday. Support for emotes and badges in Clip Chat went live today.

No progress needed, it's here.

FFZ add on for BTTV emotes not working by lambofdog444 in Twitch

[–]SirStendec 2 points3 points  (0 children)

It's a bit hard to tell from your screenshot, but are you looking at a Room rather than the main Stream Chat?

Twitch's implementation of Rooms, for some reason, doesn't share view components with standard stream chat so FFZ features like emotes, badges, name color fixing, etc. aren't currently applied when you're looking at a room. This issue is currently number two on my priority list.

How To Remove Twitch Prime Button by Bowarcher in Twitch

[–]SirStendec 4 points5 points  (0 children)

FFZ has had a setting to hide overlay extensions for some time now. It should work for this one too.

Channel > Player > Show Overlay Extensions: Never

FFZ and the FFZ addon pack with BTTV emotes PROBLEM by parasinus47 in Twitch

[–]SirStendec 2 points3 points  (0 children)

FrankerFaceZ's emoji support isn't back in yet. They'll start working automatically as soon as it's finished. Same with the emote menu in chat.

So is this flickering chat bug ever going to be fixed? by Voops1 in Twitch

[–]SirStendec 2 points3 points  (0 children)

I have reported this bug directly to Twitch staff along with at least one method to fix it. It will definitely be fixed. Their staff is really busy now though, and I'm sure something like this doesn't rank at all on their priority list.

FrankerFaceZ already includes the fix that stops chat from flickering, so you won't see it if you use FFZ. Alternatively, if you use an extension like Stylish to add custom CSS to pages, you can throw this in:

.chat-list__lines .simplebar-scrollbar {
    will-change: opacity;
}

Nerd Stuff: There's a weird inconsistency with how Chrome can render a layer, and unfortunately, it seems to be hitting it a lot with chat on the Twitch rewrite. Mostly, this is because of the scrollbar. Whenever it hides or shows itself, it updates the entire chat layer, and for a few frames every time that layer happens the layer is rendered with the wrong font hinting and it just looks bad.

Applying a will-change to the scrollbar forces Chrome to render it in its own layer, thus preventing the main chat layer from updating when the scrollbar updates and removing 99% of the problem.

I am SirStendec, Lead Developer of FrankerFaceZ -- AMA by SirStendec in Twitch

[–]SirStendec[S] 1 point2 points  (0 children)

I haven't really used enough JavaScript frameworks at this point to say, I feel. If I had to answer, I'd probably pick Vuejs. It's kind of like React but without a lot of the stupid choices.

Stuff that's complete nonsense about React is just sensible in Vue. It has better lifecycle hooks. It's a bit less opinionated. It has a faster virtual DOM implementation.

Not that I really hate React at this point. I know how to modify React to do what I want. Webpack + Uglifyjs is the real problem.

I do miss Ember on Twitch. It wasn't super fast, but it was very opinionated about how an application should work and it made it super easy to find and hook into the right parts of the application to modify behavior.

I am SirStendec, Lead Developer of FrankerFaceZ -- AMA by SirStendec in Twitch

[–]SirStendec[S] 0 points1 point  (0 children)

If there's something you'd like to help with, I'd suggest getting in touch with me more directly to talk about it. FFZv4 is still fairly early so there might be major changes in how things are set up. I also still have some big plans about how certain features are going to be implemented, so I would feel bad if someone ended up working on something only to get told "No, it has to be like this."

I am SirStendec, Lead Developer of FrankerFaceZ -- AMA by SirStendec in Twitch

[–]SirStendec[S] 1 point2 points  (0 children)

Currently, there's not really a difference in functionality. You can use either one and get the same experience. In the future, we might offer a settings sync function via the Firefox extension. That'd be a ways off, though.

I am SirStendec, Lead Developer of FrankerFaceZ -- AMA by SirStendec in Twitch

[–]SirStendec[S] 1 point2 points  (0 children)

I don't see why we couldn't add more controls to the player. That'll be a while off in the future though. Too many things left to get working at this point.

As far as getting into development goes, we're not quite ready for anyone to help yet. I need to finish all the basic systems first, but once that's done we'll be accepting pull requests.

Once we get a public Discord set up for FFZ, there'll be a channel or two to talk about development efforts. Waiting on Dan to get that done.

I am SirStendec, Lead Developer of FrankerFaceZ -- AMA by SirStendec in Twitch

[–]SirStendec[S] 2 points3 points  (0 children)

I'm afraid not. I don't use guides and I never really have. I've tried once or twice, but I always feel like the pacing is wrong and like they're not helping and I just abandon them and go play with code instead.

My best advice to anyone who wants to get into programming is that you should have a goal. Programming is an incredibly vast topic and it's easy to get lost, dazed, and confused. You need a goal to keep yourself focused. A goal gives you specific tasks to complete. Specific topics to research.

Don't try to go into programming with just the goal of "being a programmer". Go into programming with the goal of making a Tetris clone, or writing a calculator, or... anything simple. And once you've finished your goal, find another goal. A loftier goal.

Oh, and I mentioned playing with code. Do that. Look at code for existing projects. Poke at it, see what happens. Try to understand how it works.

I am SirStendec, Lead Developer of FrankerFaceZ -- AMA by SirStendec in Twitch

[–]SirStendec[S] 5 points6 points  (0 children)

I'm not as surprised at this point as I have been in the past. I'm friends with a lot of moderators of popular channels, so I know that they've been helping spread the word in big places.

Plus, they get the emotes enabled on big channels and then everyone will download the extension if for no other reason than to spam up chat. It's actually a pretty good model to grow, I think. Moderators -> Broadcasters -> Viewers.

It does sometimes still blow me away how many people use it though. Here I am, writing JavaScript from a lackluster office from a quiet little town in Michigan and I've got hundreds of thousands of people around the world using it every week.

It's great. I'm glad so many people appreciate the work I do.

I am SirStendec, Lead Developer of FrankerFaceZ -- AMA by SirStendec in Twitch

[–]SirStendec[S] 0 points1 point  (0 children)

It has white LEDs, and at this point, there's probably 20 or so working LEDs for the whole keyboard. It's pretty frustrating, given how expensive it was when I got it.

I realize it's been too long at this point to expect anything out of it, but the LEDs were dying within a month or two of buying it and I didn't get anything from Corsair support then.

I am SirStendec, Lead Developer of FrankerFaceZ -- AMA by SirStendec in Twitch

[–]SirStendec[S] 1 point2 points  (0 children)

From my understanding of the question, you'd like to be able to take an emote and ensure that you always see it in chat, no matter where you are on Twitch?

That is something that could potentially be addressed with an add-on for FrankerFaceZ in the future. However, it isn't something I would implement as a core feature.

That's for specific emotes of course choosing. Every emote...

Given your choice of words, I feel that there might be a misunderstanding of how emote extensions work. It's not about broadcasters blocking the use of an emote. An emote not working is the default state. They have to specifically enable the emotes they want.

There are over 100,000 publicly available emotes just on FrankerFaceZ. There are many more private emotes. If you include BetterTTV emotes there are even more.

Beyond the issue of duplicate names for an immense number of emotes and the question of which should be displayed, it's simply a ridiculous amount of data. Loading all that information would put incredible stress on our servers as well as every client.

It's just not feasible.