diff --git a/packages/hoppscotch-common/locales/en.json b/packages/hoppscotch-common/locales/en.json index e3acb9ccd..092225236 100644 --- a/packages/hoppscotch-common/locales/en.json +++ b/packages/hoppscotch-common/locales/en.json @@ -432,6 +432,7 @@ "view_my_links": "View my links" }, "response": { + "audio": "Audio", "body": "Response Body", "filter_response_body": "Filter JSON response body (uses JSONPath syntax)", "headers": "Headers", @@ -445,6 +446,7 @@ "status": "Status", "time": "Time", "title": "Response", + "video": "Video", "waiting_for_connection": "waiting for connection", "xml": "XML" }, diff --git a/packages/hoppscotch-common/src/components/lenses/renderers/AudioLensRenderer.vue b/packages/hoppscotch-common/src/components/lenses/renderers/AudioLensRenderer.vue new file mode 100644 index 000000000..f96ecba81 --- /dev/null +++ b/packages/hoppscotch-common/src/components/lenses/renderers/AudioLensRenderer.vue @@ -0,0 +1,79 @@ + + + diff --git a/packages/hoppscotch-common/src/components/lenses/renderers/VideoLensRenderer.vue b/packages/hoppscotch-common/src/components/lenses/renderers/VideoLensRenderer.vue new file mode 100644 index 000000000..ceb1cadb3 --- /dev/null +++ b/packages/hoppscotch-common/src/components/lenses/renderers/VideoLensRenderer.vue @@ -0,0 +1,79 @@ + + + diff --git a/packages/hoppscotch-common/src/helpers/lenses/audioLens.ts b/packages/hoppscotch-common/src/helpers/lenses/audioLens.ts new file mode 100644 index 000000000..ba696e54c --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/lenses/audioLens.ts @@ -0,0 +1,16 @@ +import { defineAsyncComponent } from "vue" +import { Lens } from "./lenses" + +const audioLens: Lens = { + lensName: "response.audio", + isSupportedContentType: (contentType) => + /\baudio\/(?:wav|mpeg|mp4|aac|aacp|ogg|webm|x-caf|flac|mp3|)\b/i.test( + contentType + ), + renderer: "audiores", + rendererImport: defineAsyncComponent( + () => import("~/components/lenses/renderers/AudioLensRenderer.vue") + ), +} + +export default audioLens diff --git a/packages/hoppscotch-common/src/helpers/lenses/lenses.ts b/packages/hoppscotch-common/src/helpers/lenses/lenses.ts index 5fc64bcba..21fe53dfe 100644 --- a/packages/hoppscotch-common/src/helpers/lenses/lenses.ts +++ b/packages/hoppscotch-common/src/helpers/lenses/lenses.ts @@ -5,6 +5,8 @@ import imageLens from "./imageLens" import htmlLens from "./htmlLens" import xmlLens from "./xmlLens" import pdfLens from "./pdfLens" +import audioLens from "./audioLens" +import videoLens from "./videoLens" import { defineAsyncComponent } from "vue" export type Lens = { @@ -20,6 +22,8 @@ export const lenses: Lens[] = [ htmlLens, xmlLens, pdfLens, + audioLens, + videoLens, rawLens, ] diff --git a/packages/hoppscotch-common/src/helpers/lenses/videoLens.ts b/packages/hoppscotch-common/src/helpers/lenses/videoLens.ts new file mode 100644 index 000000000..184e7e82b --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/lenses/videoLens.ts @@ -0,0 +1,16 @@ +import { defineAsyncComponent } from "vue" +import { Lens } from "./lenses" + +const videoLens: Lens = { + lensName: "response.video", + isSupportedContentType: (contentType) => + /\bvideo\/(?:webm|x-m4v|quicktime|x-ms-wmv|x-flv|mpeg|x-msvideo|x-ms-asf|mp4|)\b/i.test( + contentType + ), + renderer: "videores", + rendererImport: defineAsyncComponent( + () => import("~/components/lenses/renderers/VideoLensRenderer.vue") + ), +} + +export default videoLens