diff --git a/Logic/ImageProviders/Imgur.ts b/Logic/ImageProviders/Imgur.ts index 836916072..0e5841c98 100644 --- a/Logic/ImageProviders/Imgur.ts +++ b/Logic/ImageProviders/Imgur.ts @@ -1,5 +1,4 @@ -import $ from "jquery" -import ImageProvider, {ProvidedImage} from "./ImageProvider"; +import ImageProvider, { ProvidedImage } from "./ImageProvider"; import BaseUIElement from "../../UI/BaseUIElement"; import {Utils} from "../../Utils"; import Constants from "../../Models/Constants"; @@ -51,33 +50,27 @@ export class Imgur extends ImageProvider { const apiUrl = 'https://api.imgur.com/3/image'; const apiKey = Constants.ImgurApiKey; - const settings = { - async: true, - crossDomain: true, - processData: false, - contentType: false, - type: 'POST', - url: apiUrl, - headers: { - Authorization: 'Client-ID ' + apiKey, - Accept: 'application/json', - }, - mimeType: 'multipart/form-data', - }; const formData = new FormData(); formData.append('image', blob); formData.append("title", title); formData.append("description", description) - // @ts-ignore - settings.data = formData; + + const settings: RequestInit = { + method: 'POST', + body: formData, + redirect: 'follow', + headers: new Headers({ + Authorization: `Client-ID ${apiKey}`, + Accept: 'application/json', + }), + }; // Response contains stringified JSON // Image URL available at response.data.link - // @ts-ignore - $.ajax(settings).done(async function (response) { - response = JSON.parse(response); - await handleSuccessfullUpload(response.data.link); - }).fail((reason) => { + fetch(apiUrl, settings).then(async function (response) { + const content = await response.json() + await handleSuccessfullUpload(content.data.link); + }).catch((reason) => { console.log("Uploading to IMGUR failed", reason); // @ts-ignore onFail(reason); @@ -101,7 +94,7 @@ export class Imgur extends ImageProvider { /** * Download the attribution from attribution - * + * * const data = {"data":{"id":"I9t6B7B","title":"Station Knokke","description":"author:Pieter Vander Vennet\r\nlicense:CC-BY 4.0\r\nosmid:node\/9812712386","datetime":1655052078,"type":"image\/jpeg","animated":false,"width":2400,"height":1795,"size":910872,"views":2,"bandwidth":1821744,"vote":null,"favorite":false,"nsfw":false,"section":null,"account_url":null,"account_id":null,"is_ad":false,"in_most_viral":false,"has_sound":false,"tags":[],"ad_type":0,"ad_url":"","edited":"0","in_gallery":false,"link":"https:\/\/i.imgur.com\/I9t6B7B.jpg","ad_config":{"safeFlags":["not_in_gallery","share"],"highRiskFlags":[],"unsafeFlags":["sixth_mod_unsafe"],"wallUnsafeFlags":[],"showsAds":false,"showAdLevel":1}},"success":true,"status":200} * Utils.injectJsonDownloadForTests("https://api.imgur.com/3/image/E0RuAK3", data) * const licenseInfo = await Imgur.singleton.DownloadAttribution("https://i.imgur.com/E0RuAK3.jpg") diff --git a/Logic/State/UserRelatedState.ts b/Logic/State/UserRelatedState.ts index 0fc43ebc8..affa076e4 100644 --- a/Logic/State/UserRelatedState.ts +++ b/Logic/State/UserRelatedState.ts @@ -12,7 +12,6 @@ import {Changes} from "../Osm/Changes"; import ChangeToElementsActor from "../Actors/ChangeToElementsActor"; import PendingChangesUploader from "../Actors/PendingChangesUploader"; import * as translators from "../../assets/translators.json" -import {post} from "jquery"; import Maproulette from "../Maproulette"; /** diff --git a/package-lock.json b/package-lock.json index 233d6353c..ae8d4c66a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,6 @@ "geojson2svg": "^1.3.1", "i18next-client": "^1.11.4", "idb-keyval": "^6.0.3", - "jquery": "^3.6.0", "jspdf": "^2.3.1", "latlon2country": "^1.2.6", "leaflet": "^1.7.1", @@ -8732,11 +8731,6 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, - "node_modules/jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -23596,11 +23590,6 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, - "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", diff --git a/package.json b/package.json index 9f75be5b9..970ff5c4e 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,6 @@ "geojson2svg": "^1.3.1", "i18next-client": "^1.11.4", "idb-keyval": "^6.0.3", - "jquery": "^3.6.0", "jspdf": "^2.3.1", "latlon2country": "^1.2.6", "leaflet": "^1.7.1",