{ "name": "MultimediaViewer", "author": [ "Gergő Tisza", "Gilles Dubuc", "Mark Holmquist", "Simon Legner", "Ed Sanders", "Pau Giner", "James D. Forrester", "Željko Filipin", "fomafix", "Volker E", "Kunal Mehta", "Umherirrender", "Timo Tijhof", "Aaron Arcos", "Thiemo Kreuz", "Matthias Mullie", "Jon Robson", "Derk-Jan Hartman", "Chris McMahon", "Bartosz Dziewoński" ], "url": "https://www.mediawiki.org/wiki/Extension:MultimediaViewer", "descriptionmsg": "multimediaviewer-desc", "license-name": "GPL-2.0-or-later", "type": "other", "requires": { "MediaWiki": ">= 1.42.0" }, "MessagesDirs": { "MultimediaViewer": [ "i18n" ] }, "AutoloadNamespaces": { "MediaWiki\\Extension\\MultimediaViewer\\": "includes/" }, "ResourceModules": { "mmv": { "packageFiles": [ { "name": "mmv/config.json", "config": { "infoLink": "MediaViewerInfoLink", "helpLink": "MediaViewerHelpLink", "useThumbnailGuessing": "MediaViewerUseThumbnailGuessing", "thumbnailBucketSizes": "MediaViewerThumbnailBucketSizes", "imageQueryParameter": "MediaViewerImageQueryParameter", "recordVirtualViewBeaconURI": "MediaViewerRecordVirtualViewBeaconURI", "extensions": "MediaViewerExtensions" } }, "mmv/mmv.js", "mmv/logging/mmv.logging.ViewLogger.js", "mmv/model/mmv.model.License.js", "mmv/model/mmv.model.Image.js", "mmv/model/mmv.model.Thumbnail.js", "mmv/model/mmv.model.TaskQueue.js", "mmv/model/mmv.model.ThumbnailWidth.js", "mmv/provider/mmv.provider.Api.js", "mmv/provider/mmv.provider.ImageInfo.js", "mmv/provider/mmv.provider.ThumbnailInfo.js", "mmv/provider/mmv.provider.GuessedThumbnailInfo.js", "mmv/provider/mmv.provider.Image.js", "mmv/mmv.ThumbnailWidthCalculator.js", "mmv/ui/mmv.ui.js", "mmv/ui/mmv.ui.dialog.js", "mmv/ui/mmv.ui.description.js", "mmv/ui/mmv.ui.viewingOptions.js", "mmv/ui/mmv.ui.canvas.js", "mmv/ui/mmv.ui.canvasButtons.js", "mmv/ui/mmv.ui.permission.js", "mmv/ui/mmv.ui.progressBar.js", "mmv/ui/mmv.ui.stripeButtons.js", "mmv/ui/mmv.ui.truncatableTextField.js", "mmv/ui/mmv.ui.metadataPanel.js", "mmv/ui/mmv.ui.metadataPanelScroller.js", "mmv/mmv.lightboxinterface.js" ], "styles": [ "mmv/ui/mmv.ui.dialog.less", "mmv/ui/mmv.ui.viewingOptions.less", "mmv/ui/mmv.ui.canvas.less", "mmv/ui/mmv.ui.canvasButtons.less", "mmv/ui/mmv.ui.permission.less", "mmv/ui/mmv.ui.progressBar.less", "mmv/ui/mmv.ui.stripeButtons.less", "mmv/ui/mmv.ui.truncatableTextField.less", "mmv/ui/mmv.ui.metadataPanel.less", "mmv/ui/mmv.ui.metadataPanelScroller.less", "mmv/mmv.lightboxinterface.less" ], "dependencies": [ "mediawiki.api", "mediawiki.Title", "mediawiki.Uri", "mediawiki.jqueryMsg", "mediawiki.router", "mediawiki.storage", "mediawiki.user", "mediawiki.util", "mmv.bootstrap", "mmv.codex", "mmv.head" ], "messages": [ "license-header", "multimediaviewer-file-page", "multimediaviewer-options-learn-more", "multimediaviewer-options-dialog-header", "multimediaviewer-option-submit-button", "multimediaviewer-option-cancel-button", "multimediaviewer-options-text-header", "multimediaviewer-enable-alert", "multimediaviewer-options-text-body", "multimediaviewer-disable-confirmation-header", "multimediaviewer-disable-confirmation-text", "multimediaviewer-enable-dialog-header", "multimediaviewer-enable-text-header", "multimediaviewer-enable-submit-button", "multimediaviewer-enable-confirmation-header", "multimediaviewer-enable-confirmation-text", "multimediaviewer-file-not-found-error", "multimediaviewer-thumbnail-error", "multimediaviewer-thumbnail-error-description", "multimediaviewer-thumbnail-error-retry", "multimediaviewer-report-issue-url", "multimediaviewer-thumbnail-error-report", "multimediaviewer-errorreport-privacywarning", "multimediaviewer-download-link", "multimediaviewer-reuse-link", "multimediaviewer-options-tooltip", "multimediaviewer-close-popup-text", "multimediaviewer-fullscreen-popup-text", "multimediaviewer-defullscreen-popup-text", "multimediaviewer-next-image-alt-text", "multimediaviewer-prev-image-alt-text", "multimediaviewer-commons-subtitle", "multimediaviewer-credit", "multimediaviewer-credit-fallback", "multimediaviewer-multiple-authors", "multimediaviewer-multiple-authors-combine", "multimediaviewer-datetime-created", "multimediaviewer-datetime-uploaded", "multimediaviewer-permission-link", "multimediaviewer-permission-link-hide", "multimediaviewer-restriction-2257", "multimediaviewer-restriction-aus-reserve", "multimediaviewer-restriction-communist", "multimediaviewer-restriction-costume", "multimediaviewer-restriction-currency", "multimediaviewer-restriction-design", "multimediaviewer-restriction-fan-art", "multimediaviewer-restriction-ihl", "multimediaviewer-restriction-insignia", "multimediaviewer-restriction-ita-mibac", "multimediaviewer-restriction-nazi", "multimediaviewer-restriction-personality", "multimediaviewer-restriction-trademarked", "multimediaviewer-restriction-default", "multimediaviewer-restriction-default-and-others", "multimediaviewer-reuse-warning-deletion", "multimediaviewer-reuse-warning-nonfree", "multimediaviewer-reuse-warning-noattribution", "multimediaviewer-reuse-warning-generic", "multimediaviewer-geoloc-north", "multimediaviewer-geoloc-east", "multimediaviewer-geoloc-south", "multimediaviewer-geoloc-west", "multimediaviewer-geoloc-coord", "multimediaviewer-geoloc-coords", "multimediaviewer-geolocation", "multimediaviewer-about-mmv", "multimediaviewer-optout-mmv", "multimediaviewer-optin-mmv", "multimediaviewer-optout-pending-mmv", "multimediaviewer-optin-pending-mmv", "multimediaviewer-optout-help", "multimediaviewer-optin-help", "mypreferences", "multimediaviewer-metadata-error", "multimediaviewer-title-popup-text", "multimediaviewer-credit-popup-text", "multimediaviewer-title-popup-text-more", "multimediaviewer-credit-popup-text-more", "multimediaviewer-permission-title", "multimediaviewer-permission-viewmore", "multimediaviewer-description-page-button-text", "multimediaviewer-description-page-popup-text", "multimediaviewer-repository-local", "multimediaviewer-license-cc-by-1.0", "multimediaviewer-license-cc-sa-1.0", "multimediaviewer-license-cc-by-sa-1.0", "multimediaviewer-license-cc-by-2.0", "multimediaviewer-license-cc-by-sa-2.0", "multimediaviewer-license-cc-by-2.1", "multimediaviewer-license-cc-by-sa-2.1", "multimediaviewer-license-cc-by-2.5", "multimediaviewer-license-cc-by-sa-2.5", "multimediaviewer-license-cc-by-3.0", "multimediaviewer-license-cc-by-sa-3.0", "multimediaviewer-license-cc-by-4.0", "multimediaviewer-license-cc-by-sa-4.0", "multimediaviewer-license-cc-pd", "multimediaviewer-license-cc-zero", "multimediaviewer-license-pd", "multimediaviewer-license-default" ] }, "mmv.codex": { "class": "MediaWiki\\ResourceLoader\\CodexModule", "codexStyleOnly": true, "codexComponents": [ "CdxButton", "CdxDialog", "CdxProgressBar", "CdxSelect", "CdxTabs", "CdxTextInput" ] }, "mmv.ui.reuse": { "packageFiles": [ "mmv.ui.reuse/index.js", "mmv.ui.reuse/mmv.ui.reuse.dialog.js", "mmv.ui.reuse/mmv.ui.download.dialog.js", "mmv.ui.reuse/mmv.ui.download.pane.js", "mmv.ui.reuse/mmv.ui.reuse.share.js", "mmv.ui.reuse/mmv.ui.reuse.embed.js", "mmv.ui.reuse/mmv.EmbedFileFormatter.js", "mmv.ui.reuse/mmv.ui.utils.js" ], "styles": [ "mmv.ui.reuse/mmv.ui.reuse.dialog.less", "mmv.ui.reuse/mmv.ui.download.dialog.less" ], "dependencies": [ "mmv.codex", "mediawiki.user", "mediawiki.widgets" ], "messages": [ "multimediaviewer-copy-button", "multimediaviewer-default-embed-dimensions", "multimediaviewer-original-embed-dimensions", "multimediaviewer-xl-embed-dimensions", "multimediaviewer-large-embed-dimensions", "multimediaviewer-medium-embed-dimensions", "multimediaviewer-small-embed-dimensions", "multimediaviewer-embed-dimensions", "multimediaviewer-embed-dimensions-separated", "multimediaviewer-credit", "multimediaviewer-text-embed-credit-text-bl", "multimediaviewer-text-embed-credit-text-b", "multimediaviewer-text-embed-credit-text-l", "multimediaviewer-html-embed-credit-text-bl", "multimediaviewer-html-embed-credit-text-b", "multimediaviewer-html-embed-credit-text-l", "multimediaviewer-html-embed-credit-link-text", "mw-widgets-copytextlayout-copy-success", "multimediaviewer-download", "multimediaviewer-download-preview-link-title", "multimediaviewer-download-attribution-cta-header", "multimediaviewer-download-link", "multimediaviewer-download-optional-attribution-cta-header", "multimediaviewer-download-attribution-copy", "multimediaviewer-download-attribution", "multimediaviewer-attr-plain", "multimediaviewer-attr-html", "multimediaviewer-share-tab", "multimediaviewer-share-explanation", "multimediaviewer-link-to-file", "multimediaviewer-link-to-page", "multimediaviewer-reuse-loading-placeholder", "multimediaviewer-reuse-copy-share", "multimediaviewer-reuse-copy-embed", "multimediaviewer-embed-tab", "multimediaviewer-embed-html", "multimediaviewer-embed-wt", "multimediaviewer-embed-explanation", "multimediaviewer-embed-byline", "multimediaviewer-embed-license", "multimediaviewer-embed-via" ] }, "mmv.ui.restriction": { "styles": [ "mmv.ui.restriction/mmv.ui.restriction.less" ] }, "mmv.bootstrap": { "packageFiles": [ { "name": "mmv.bootstrap/config.json", "config": { "extensions": "MediaViewerExtensions" } }, "mmv.bootstrap/mmv.bootstrap.js", "mmv.bootstrap/mmv.lightboximage.js", "mmv.bootstrap/mmv.Config.js", "mmv.bootstrap/mmv.HtmlUtils.js" ], "styles": [ "mmv.bootstrap/mmv.bootstrap.less" ], "dependencies": [ "mmv.codex", "mediawiki.api", "mediawiki.router", "mediawiki.Title", "mediawiki.user", "mediawiki.storage", "mmv.head" ], "messages": [ "multimediaviewer-loading", "multimediaviewer-view-expanded", "multimediaviewer-view-config", "multimediaviewer-disable-info-title", "multimediaviewer-disable-info" ] }, "mmv.bootstrap.autostart": { "packageFiles": [ "mmv.bootstrap.autostart/mmv.bootstrap.autostart.js" ], "dependencies": [ "mmv.head", "mmv.bootstrap" ] }, "mmv.head": { "packageFiles": [ "mmv.head/mmv.head.js", "mmv.head/base.js" ], "dependencies": [ "mediawiki.user", "mediawiki.storage" ] } }, "ResourceFileModulePaths": { "localBasePath": "resources", "remoteExtPath": "MultimediaViewer/resources" }, "QUnitTestModule": { "localBasePath": "", "remoteExtPath": "MultimediaViewer", "packageFiles": [ "tests/qunit/mmv/index.js", "tests/qunit/mmv/mmv.bootstrap.test.js", "tests/qunit/mmv/mmv.test.js", "tests/qunit/mmv/mmv.lightboxinterface.test.js", "tests/qunit/mmv/mmv.lightboximage.test.js", "tests/qunit/mmv/mmv.ThumbnailWidthCalculator.test.js", "tests/qunit/mmv/mmv.EmbedFileFormatter.test.js", "tests/qunit/mmv/mmv.Config.test.js", "tests/qunit/mmv/mmv.HtmlUtils.test.js", "tests/qunit/mmv/logging/mmv.logging.ViewLogger.test.js", "tests/qunit/mmv/model/mmv.model.test.js", "tests/qunit/mmv/model/mmv.model.TaskQueue.test.js", "tests/qunit/mmv/model/mmv.model.License.test.js", "tests/qunit/mmv/model/mmv.model.Image.test.js", "tests/qunit/mmv/provider/mmv.provider.Api.test.js", "tests/qunit/mmv/provider/mmv.provider.ImageInfo.test.js", "tests/qunit/mmv/provider/mmv.provider.ThumbnailInfo.test.js", "tests/qunit/mmv/provider/mmv.provider.GuessedThumbnailInfo.test.js", "tests/qunit/mmv/provider/mmv.provider.Image.test.js", "tests/qunit/mmv/ui/mmv.ui.test.js", "tests/qunit/mmv/ui/mmv.ui.canvas.test.js", "tests/qunit/mmv/ui/mmv.ui.canvasButtons.test.js", "tests/qunit/mmv/ui/mmv.ui.description.test.js", "tests/qunit/mmv/ui/mmv.ui.download.pane.test.js", "tests/qunit/mmv/ui/mmv.ui.metadataPanel.test.js", "tests/qunit/mmv/ui/mmv.ui.metadataPanelScroller.test.js", "tests/qunit/mmv/ui/mmv.ui.progressBar.test.js", "tests/qunit/mmv/ui/mmv.ui.permission.test.js", "tests/qunit/mmv/ui/mmv.ui.stripeButtons.test.js", "tests/qunit/mmv/ui/mmv.ui.reuse.dialog.test.js", "tests/qunit/mmv/ui/mmv.ui.reuse.embed.test.js", "tests/qunit/mmv/ui/mmv.ui.reuse.share.test.js", "tests/qunit/mmv/ui/mmv.ui.reuse.utils.test.js", "tests/qunit/mmv/ui/mmv.ui.truncatableTextField.test.js", "tests/qunit/mmv/ui/mmv.ui.viewingOptions.test.js", "tests/qunit/mmv/mmv.testhelpers.js" ], "dependencies": [ "mmv.head", "mmv.bootstrap", "mmv", "mmv.ui.reuse" ] }, "Hooks": { "UserGetDefaultOptions": "main", "GetPreferences": "main", "BeforePageDisplay": "main", "CategoryPageView": "main", "ResourceLoaderGetConfigVars": "main", "MakeGlobalVariablesScript": "main", "ThumbnailBeforeProduceHTML": "main" }, "HookHandlers": { "main": { "class": "MediaWiki\\Extension\\MultimediaViewer\\Hooks", "services": [ "MainConfig", "SpecialPageFactory", "UserOptionsLookup" ], "optional_services": [ "MobileFrontend.Context" ] } }, "config": { "MediaViewerExtensions": { "value": { "djvu": "default", "jpg": "default", "jpeg": "default", "gif": "default", "svg": "default", "png": "default", "tiff": "default", "tif": "default", "webp": "default" } }, "MediaViewerInfoLink": { "description": "Link to more information about this module.", "value": "https://mediawiki.org/wiki/Special:MyLanguage/Extension:Media_Viewer/About" }, "MediaViewerHelpLink": { "description": "Link to help about this .", "value": "https://mediawiki.org/wiki/Special:MyLanguage/Help:Extension:Media_Viewer" }, "MediaViewerUseThumbnailGuessing": { "description": "When this is enabled, MediaViewer will try to guess image URLs instead of making an imageinfo API to get them from the server. This speeds up image loading, but will result in 404s when $wgGenerateThumbnailOnParse (so the thumbnails are only generated as a result of the API request). MediaViewer will catch such 404 errors and fall back to the API request, but depending on how the site is set up, the 404 might get cached, or redirected, causing the image load to fail. The safe way to use URL guessing is with a 404 handler: https://www.mediawiki.org/wiki/Manual:Thumb.php#404_Handler", "value": false }, "MediaViewerThumbnailBucketSizes": { "description": "Array of preselected widths used to generate thumbnail URLs to avoid arbitrary size requests (see also wgUploadThumbnailRenderMap).", "value": [ 320, 800, 1024, 1280, 1920, 2560, 2880 ] }, "MediaViewerEnableByDefault": { "description": "If true, Media Viewer will be turned on by default.", "value": true }, "MediaViewerEnableByDefaultForAnonymous": { "description": "Overrides $wgMediaViewerEnableByDefault for anonymous users. If set to null, will fall back to value of $wgMediaViewerEnableByDefault", "value": null }, "MediaViewerImageQueryParameter": { "description": "If set, adds a query parameter to image requests made by Media Viewer", "value": false }, "MediaViewerRecordVirtualViewBeaconURI": { "description": "If set, records a virtual view via the provided beacon URI.", "value": false } }, "manifest_version": 2 }