https://ludo.vision/

送信済みURL:
https://ludo.vision/
レポート終了日:

リンク · 2件検出

ページから特定された発信リンク

リンクテキスト
https://github.com/msitarzewski/ludovisionGitHub
https://bsky.app/settings/app-passwordsBluesky App Passwords page

JavaScript変数 · 3件検出

ページのウィンドウオブジェクトにロードされたグローバルのJavaScript変数は関数以外の場所で宣言された変数で、現在のスコープ内であればコードのどこからでもアクセス可能です

名前規模
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject

コンソールログメッセージ · 4件検出

Webコンソールにログ記録されたメッセージ

規模分類ログ
errornetwork
URL
https://ludo.vision/settings.js
テキスト
Failed to load resource: the server responded with a status of 404 (Not Found)
warningother
URL
https://ludo.vision/script.js
テキスト
No credentials provided. Authentication skipped.
verbosedom
URL
https://ludo.vision/
テキスト
[DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o
errornetwork
URL
https://ludo.vision/favicon.ico
テキスト
Failed to load resource: the server responded with a status of 404 (Not Found)

HTML

未加工のHTMLページ本文

<!DOCTYPE html><html><head>
    <title>Ludovision</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="styles.css">
    <script src="settings.js"></script>
    <script src="script.js"></script>
    <meta name="robots" content="noindex">
    <!-- open graph meta tags -->
    <meta property="og:title" content="Ludovision">
    <meta property="og:description" content="View raw image data from the Bluesky firehose. Viewer discretion is advised. VPN and private browsing recommended.">
    <meta property="og:image" content="samples/feed.jpg">
    <meta property="og:url" content="https://ludovision.com">
</head>
<body>

    <div id="warning-modal" style="display: flex;">
        <div>
            <h1>WARNING</h1>
            <p id="warning-text" style="text-transform: uppercase;">
                You are viewing raw image data directly from the Bluesky firehose. This data INCLUDES unfiltered, unmoderated, and sensitive content. Viewer discretion is advised. Proceed only if you are prepared to encounter images that have not been reviewed for appropriateness or relevance. You agree that you are of a legal age to view this content.
            </p>
            <p id="warning-text">
                <strong>Disclaimer:</strong><br>
                The creator of this tool assumes no responsibility for the content accessed through this service. Any inappropriate use, redistribution, or exploitation of the data is strictly prohibited. By continuing, you agree to hold the creator harmless from any liability arising from your use of this data.
            </p>
            <p id="warning-text">
                This tool and its instructions are open source and available on <a href="https://github.com/msitarzewski/ludovision" target="_blank">GitHub</a>.
            </p>
            <p id="warning-text" style="color: red;">
                NOTE: PRIVATE BROWSING MODE IS RECOMMENDED. Private browsing prevents images from being stored on your device and will reside in memory only.
            </p>
            <div class="form-group">
                <input type="checkbox" id="launch-warning-checkbox">
                <label for="launch-warning-checkbox">I understand and accept the above disclaimer</label>
            </div>
            <div class="modal-buttons">
                <button id="ok-button">OK</button>
                <button id="cancel-button">Cancel</button>
            </div>
        </div>
    </div>

    <div id="header">
        <h1>Ludovision</h1>
        <div id="settings-container" class="settings-menu">
            <!-- close button-->
            <div class="form-container">
                <button id="close-settings-button" class="close-settings-button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg></button>
                <div class="form-header">Settings</div>
                <div class="form-group">
                    <label for="image-size-slider" class="form-label">Image Size</label>
                    <div class="form-inputs">
                        <input type="number" id="image-size-input" min="32" max="512" value="128" step="32" class="form-control">
                        <input type="range" id="image-size-slider" min="32" max="512" value="128" step="32" class="form-control-range">
                    </div>
                </div>
                <div class="form-group">
                    <label for="sort-toggle" class="form-label">Newest First</label>
                    <div class="form-inputs">
                        <input type="checkbox" id="sort-toggle" class="form-check-input">Yes
                    </div>
                </div>
                <div class="form-group">
                    <label for="blur-toggle" class="form-label">Blur Unwanted</label>
                    <div class="form-inputs">
                        <input type="checkbox" id="blur-toggle" class="form-check-input">Yes
                    </div>
                </div>
                <div class="form-group">
                    <label for="speed-slider" class="form-label">Feed Delay (<span id="speed-value">0</span>ms)</label>
                    <div class="form-inputs">
                        <input type="range" id="speed-slider" min="0" max="2000" value="0" step="100" class="form-control-range">
                    </div>
                </div>
                <div id="auth-container">
                    <div class="form-group">
                        <label for="bsky-identifier" class="form-label">Bluesky Identifier</label>
                        <div class="form-inputs">
                            <input type="text" id="bsky-identifier" class="form-control">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="bsky-app-password" class="form-label">App Password</label>
                        <div class="form-inputs">
                            <input type="password" id="bsky-app-password" class="form-control" placeholder="xxxx-xxxx-xxxx-xxxx">
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="form-inputs" style="display: flex; justify-content: end;">
                            <button id="auth-button" class="form-control">Auth</button>
                            <button id="clear-button" class="form-control" style="display: none;">Clear</button>
                        </div>
                    </div>
                </div>
                <div class="button-group">
                    <button id="pause-button" class="btn btn-sm btn-primary">Pause Feed</button>
                    <button id="skip-button" class="btn btn-sm btn-danger">Skip</button>
                    <button id="restart-button" class="btn btn-sm btn-secondary">Restart Feed</button>
                </div>
            </div>
        </div>
        <div id="debug-info"></div>
        <button id="hamburger-menu" class="hamburger-menu">
            <!--?xml version="1.0" encoding="UTF-8"?-->
            <svg width="32px" height="32px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
                <title>Menu</title>
                <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
                    <g id="Menu">
                        <rect id="Rectangle" fill-rule="nonzero" x="0" y="0" width="24" height="24"></rect>
                        <line x1="5" y1="7" x2="19" y2="7" id="Path" stroke="white" stroke-width="2" stroke-linecap="round"></line>
                        <line x1="5" y1="17" x2="19" y2="17" id="Path" stroke="white" stroke-width="2" stroke-linecap="round"></line>
                        <line x1="5" y1="12" x2="19" y2="12" id="Path" stroke="white" stroke-width="2" stroke-linecap="round"></line>
                    </g>
                </g>
            </svg>
        </button>
    </div>

    <div id="images-container" style="grid-auto-rows: 128px; grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));">
        <!-- Images will be appended here -->
    </div>

    <div id="image-modal" class="modal" style="display: none;">
        <img id="modal-image" alt="Full-size image" style="max-width: 90%; max-height: 90%;">
        <div class="modal-buttons">
            <button id="profile-link" class="view-profile-button" href="#" target="_blank">View Profile</button>
            <button id="view-all-media-button" class="view-all-media-button" href="#">View Gallery</button>
        </div>
    </div>

    <div id="gallery-modal" class="modal" style="display: none;">
        <div class="grid">
            <!-- Gallery images will be appended here -->
        </div>
        <div class="modal-buttons">
            <button id="close-gallery-button">Close</button>
            <button id="gallery-profile-link" class="view-profile-button" href="#" target="_blank">View Profile</button>
        </div>
    </div>

    <div id="gallery-image-modal" class="modal" style="display: none;">
        <img id="gallery-modal-image" alt="Full-size gallery image" style="max-width: 90%; max-height: 90%;">
        <div id="magnifier" style="display: none;"></div>
    </div>

    <div id="instructions-modal" class="modal" style="display: none;">
        <div class="modal-content">
            <div class="modal-header">App Password Required</div>
            <div class="modal-body">
                <img src="samples/gallery.jpg" loading="lazy" alt="Gallery" style="max-width: 100%; height: auto;">
                <p>
                    This button would normally be used to view the gallery - every image this user has posted on Bluesky.
                </p>
                <p>
                    To view the gallery, you need to create an app password and enter it in either the settings
                    file or the settings menu. Follow the instructions on the <a href="https://bsky.app/settings/app-passwords" target="_blank">Bluesky App Passwords page</a>
                    to create an app password.
                </p>
            </div>
            <div class="modal-footer">
                <button id="close-instructions-button" class="btn btn-danger">Close</button>
            </div>
        </div>
    </div>
    


</body></html>