Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
0.83 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.05 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\EntryComment {#1369
  +user: Proxies\__CG__\App\Entity\User {#1370 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "programmer_humor@programming.dev"
    +title: "programmer_humor"
    +description: """
      Welcome to Programmer Humor!\n
      \n
      This is a place where you can post jokes, memes, humor, etc. related to programming!\n
      \n
      For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
      \n
      Rules\n
      -----\n
      \n
      - Keep content in english\n
      - No advertisements\n
      - Posts must be related to programming or programmer topics
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 297
    +entryCommentCount: 2799
    +postCount: 1
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729523671 {#321
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 100
    +apId: "programmer_humor@programming.dev"
    +apProfileId: "https://programming.dev/c/programmer_humor"
    +apPublicUrl: "https://programming.dev/c/programmer_humor"
    +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "programmer_humor"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726902871 {#322
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#316
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2451 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2356 …}
  +body: """
    Maybe I have no understanding of what a binary search is. My understanding is that you check halfway through the video, see if the thing has happened yet, then skip halfway to the end if it hasn’t. Check again, skip again. When you see the cue that the event has happened, you rewind to halfway between the latest point where the event hadn’t happened yet and the earliest point when it has. Keep doing that and you can pinpoint the exact frame where the event happens in a matter of minutes.\n
    \n
    Binary search would be largely useless in cases where you have a good chance of skipping right past the event. If the video is an hour long, and the event happens 34 minutes in and leaves a visual cue that lasts less than 11 minutes, then binary search does not find the event. At that point, watching the video fast forwarded would be the way to go, and that’s not a binary search, that’s just watching the video.\n
    \n
    So I should correct myself: the visual cue doesn’t have to last the remainder of the video, it just needs to last until one of the points that you check. Which still makes it not useful for things that don’t leave visual cues that last more than a few minutes, because it cannot find most of those events if they happen at a random time in an hour+ video.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1701472874 {#1605
    date: 2023-12-02 00:21:14.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@The_Picard_Maneuver@startrek.website"
    "@charonn0@startrek.website"
    "@CosmicCleric@lemmy.world"
    "@null@slrpnk.net"
    "@Azzu@lemm.ee"
    "@TheSanSabaSongbird@lemdro.id"
    "@nexguy@lemmy.world"
    "@starman2112@sh.itjust.works"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2466 …}
  +nested: Doctrine\ORM\PersistentCollection {#2288 …}
  +votes: Doctrine\ORM\PersistentCollection {#2446 …}
  +reports: Doctrine\ORM\PersistentCollection {#2439 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2489 …}
  +notifications: Doctrine\ORM\PersistentCollection {#60 …}
  -id: 186857
  -bodyTs: "'11':137 '34':125 'binari':9,94,140,166 'cannot':228 'case':101 'chanc':107 'check':17,39,204 'correct':177 'cue':47,132,181,218 'doesn':182 'earliest':70 'end':34 'event':50,63,87,113,123,146,233 'exact':83 'fast':153 'find':144,229 'forward':154 'frame':84 'go':160 'good':106 'hadn':64 'halfway':18,31,56 'happen':27,52,66,88,124,236 'hasn':37 'hour':119,243 'keep':75 'larg':98 'last':134,186,196,220 'latest':59 'leav':129,216 'less':135 'long':120 'make':207 'matter':91 'mayb':1 'minut':93,126,138,225 'need':194 'one':198 'past':111 'pinpoint':81 'point':60,71,149,201 'random':239 'remaind':188 'rewind':54 'right':110 'search':10,95,141,167 'see':22,45 'skip':30,41,109 'still':206 'thing':25,212 'time':240 'understand':5,13 'use':210 'useless':99 'video':21,116,152,173,191,244 'visual':131,180,217 'watch':150,171 'way':158 'would':96,155 'yet':28,67"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sh.itjust.works/comment/6191797"
  +editedAt: DateTimeImmutable @1702581433 {#1945
    date: 2023-12-14 20:17:13.0 +01:00
  }
  +createdAt: DateTimeImmutable @1701472874 {#1368
    date: 2023-12-02 00:21:14.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\EntryComment {#1369
  +user: Proxies\__CG__\App\Entity\User {#1370 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "programmer_humor@programming.dev"
    +title: "programmer_humor"
    +description: """
      Welcome to Programmer Humor!\n
      \n
      This is a place where you can post jokes, memes, humor, etc. related to programming!\n
      \n
      For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
      \n
      Rules\n
      -----\n
      \n
      - Keep content in english\n
      - No advertisements\n
      - Posts must be related to programming or programmer topics
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 297
    +entryCommentCount: 2799
    +postCount: 1
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729523671 {#321
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 100
    +apId: "programmer_humor@programming.dev"
    +apProfileId: "https://programming.dev/c/programmer_humor"
    +apPublicUrl: "https://programming.dev/c/programmer_humor"
    +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "programmer_humor"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726902871 {#322
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#316
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2451 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2356 …}
  +body: """
    Maybe I have no understanding of what a binary search is. My understanding is that you check halfway through the video, see if the thing has happened yet, then skip halfway to the end if it hasn’t. Check again, skip again. When you see the cue that the event has happened, you rewind to halfway between the latest point where the event hadn’t happened yet and the earliest point when it has. Keep doing that and you can pinpoint the exact frame where the event happens in a matter of minutes.\n
    \n
    Binary search would be largely useless in cases where you have a good chance of skipping right past the event. If the video is an hour long, and the event happens 34 minutes in and leaves a visual cue that lasts less than 11 minutes, then binary search does not find the event. At that point, watching the video fast forwarded would be the way to go, and that’s not a binary search, that’s just watching the video.\n
    \n
    So I should correct myself: the visual cue doesn’t have to last the remainder of the video, it just needs to last until one of the points that you check. Which still makes it not useful for things that don’t leave visual cues that last more than a few minutes, because it cannot find most of those events if they happen at a random time in an hour+ video.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1701472874 {#1605
    date: 2023-12-02 00:21:14.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@The_Picard_Maneuver@startrek.website"
    "@charonn0@startrek.website"
    "@CosmicCleric@lemmy.world"
    "@null@slrpnk.net"
    "@Azzu@lemm.ee"
    "@TheSanSabaSongbird@lemdro.id"
    "@nexguy@lemmy.world"
    "@starman2112@sh.itjust.works"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2466 …}
  +nested: Doctrine\ORM\PersistentCollection {#2288 …}
  +votes: Doctrine\ORM\PersistentCollection {#2446 …}
  +reports: Doctrine\ORM\PersistentCollection {#2439 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2489 …}
  +notifications: Doctrine\ORM\PersistentCollection {#60 …}
  -id: 186857
  -bodyTs: "'11':137 '34':125 'binari':9,94,140,166 'cannot':228 'case':101 'chanc':107 'check':17,39,204 'correct':177 'cue':47,132,181,218 'doesn':182 'earliest':70 'end':34 'event':50,63,87,113,123,146,233 'exact':83 'fast':153 'find':144,229 'forward':154 'frame':84 'go':160 'good':106 'hadn':64 'halfway':18,31,56 'happen':27,52,66,88,124,236 'hasn':37 'hour':119,243 'keep':75 'larg':98 'last':134,186,196,220 'latest':59 'leav':129,216 'less':135 'long':120 'make':207 'matter':91 'mayb':1 'minut':93,126,138,225 'need':194 'one':198 'past':111 'pinpoint':81 'point':60,71,149,201 'random':239 'remaind':188 'rewind':54 'right':110 'search':10,95,141,167 'see':22,45 'skip':30,41,109 'still':206 'thing':25,212 'time':240 'understand':5,13 'use':210 'useless':99 'video':21,116,152,173,191,244 'visual':131,180,217 'watch':150,171 'way':158 'would':96,155 'yet':28,67"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sh.itjust.works/comment/6191797"
  +editedAt: DateTimeImmutable @1702581433 {#1945
    date: 2023-12-14 20:17:13.0 +01:00
  }
  +createdAt: DateTimeImmutable @1701472874 {#1368
    date: 2023-12-02 00:21:14.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\EntryComment {#1369
  +user: Proxies\__CG__\App\Entity\User {#1370 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "programmer_humor@programming.dev"
    +title: "programmer_humor"
    +description: """
      Welcome to Programmer Humor!\n
      \n
      This is a place where you can post jokes, memes, humor, etc. related to programming!\n
      \n
      For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
      \n
      Rules\n
      -----\n
      \n
      - Keep content in english\n
      - No advertisements\n
      - Posts must be related to programming or programmer topics
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 297
    +entryCommentCount: 2799
    +postCount: 1
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729523671 {#321
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 100
    +apId: "programmer_humor@programming.dev"
    +apProfileId: "https://programming.dev/c/programmer_humor"
    +apPublicUrl: "https://programming.dev/c/programmer_humor"
    +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "programmer_humor"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726902871 {#322
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#316
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2451 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2356 …}
  +body: """
    Maybe I have no understanding of what a binary search is. My understanding is that you check halfway through the video, see if the thing has happened yet, then skip halfway to the end if it hasn’t. Check again, skip again. When you see the cue that the event has happened, you rewind to halfway between the latest point where the event hadn’t happened yet and the earliest point when it has. Keep doing that and you can pinpoint the exact frame where the event happens in a matter of minutes.\n
    \n
    Binary search would be largely useless in cases where you have a good chance of skipping right past the event. If the video is an hour long, and the event happens 34 minutes in and leaves a visual cue that lasts less than 11 minutes, then binary search does not find the event. At that point, watching the video fast forwarded would be the way to go, and that’s not a binary search, that’s just watching the video.\n
    \n
    So I should correct myself: the visual cue doesn’t have to last the remainder of the video, it just needs to last until one of the points that you check. Which still makes it not useful for things that don’t leave visual cues that last more than a few minutes, because it cannot find most of those events if they happen at a random time in an hour+ video.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1701472874 {#1605
    date: 2023-12-02 00:21:14.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@The_Picard_Maneuver@startrek.website"
    "@charonn0@startrek.website"
    "@CosmicCleric@lemmy.world"
    "@null@slrpnk.net"
    "@Azzu@lemm.ee"
    "@TheSanSabaSongbird@lemdro.id"
    "@nexguy@lemmy.world"
    "@starman2112@sh.itjust.works"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2466 …}
  +nested: Doctrine\ORM\PersistentCollection {#2288 …}
  +votes: Doctrine\ORM\PersistentCollection {#2446 …}
  +reports: Doctrine\ORM\PersistentCollection {#2439 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2489 …}
  +notifications: Doctrine\ORM\PersistentCollection {#60 …}
  -id: 186857
  -bodyTs: "'11':137 '34':125 'binari':9,94,140,166 'cannot':228 'case':101 'chanc':107 'check':17,39,204 'correct':177 'cue':47,132,181,218 'doesn':182 'earliest':70 'end':34 'event':50,63,87,113,123,146,233 'exact':83 'fast':153 'find':144,229 'forward':154 'frame':84 'go':160 'good':106 'hadn':64 'halfway':18,31,56 'happen':27,52,66,88,124,236 'hasn':37 'hour':119,243 'keep':75 'larg':98 'last':134,186,196,220 'latest':59 'leav':129,216 'less':135 'long':120 'make':207 'matter':91 'mayb':1 'minut':93,126,138,225 'need':194 'one':198 'past':111 'pinpoint':81 'point':60,71,149,201 'random':239 'remaind':188 'rewind':54 'right':110 'search':10,95,141,167 'see':22,45 'skip':30,41,109 'still':206 'thing':25,212 'time':240 'understand':5,13 'use':210 'useless':99 'video':21,116,152,173,191,244 'visual':131,180,217 'watch':150,171 'way':158 'would':96,155 'yet':28,67"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sh.itjust.works/comment/6191797"
  +editedAt: DateTimeImmutable @1702581433 {#1945
    date: 2023-12-14 20:17:13.0 +01:00
  }
  +createdAt: DateTimeImmutable @1701472874 {#1368
    date: 2023-12-02 00:21:14.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED edit
App\Entity\Magazine {#313
  +icon: Proxies\__CG__\App\Entity\Image {#294 …}
  +name: "programmer_humor@programming.dev"
  +title: "programmer_humor"
  +description: """
    Welcome to Programmer Humor!\n
    \n
    This is a place where you can post jokes, memes, humor, etc. related to programming!\n
    \n
    For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
    \n
    Rules\n
    -----\n
    \n
    - Keep content in english\n
    - No advertisements\n
    - Posts must be related to programming or programmer topics
    """
  +rules: null
  +subscriptionsCount: 1
  +entryCount: 297
  +entryCommentCount: 2799
  +postCount: 1
  +postCommentCount: 0
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729523671 {#321
    date: 2024-10-21 17:14:31.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#285 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
  +entries: Doctrine\ORM\PersistentCollection {#228 …}
  +posts: Doctrine\ORM\PersistentCollection {#186 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
  +bans: Doctrine\ORM\PersistentCollection {#165 …}
  +reports: Doctrine\ORM\PersistentCollection {#151 …}
  +badges: Doctrine\ORM\PersistentCollection {#129 …}
  +logs: Doctrine\ORM\PersistentCollection {#119 …}
  +awards: Doctrine\ORM\PersistentCollection {#108 …}
  +categories: Doctrine\ORM\PersistentCollection {#95 …}
  -id: 100
  +apId: "programmer_humor@programming.dev"
  +apProfileId: "https://programming.dev/c/programmer_humor"
  +apPublicUrl: "https://programming.dev/c/programmer_humor"
  +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
  +apInboxUrl: "https://programming.dev/inbox"
  +apDomain: "programming.dev"
  +apPreferredUsername: "programmer_humor"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1726902871 {#322
    date: 2024-09-21 09:14:31.0 +02:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1700391429 {#316
    date: 2023-11-19 11:57:09.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS DENIED
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details