Skip to content

Commit

Permalink
split off logic for bridgifySearchQuery into separate protocol-transl…
Browse files Browse the repository at this point in the history
…ator module
  • Loading branch information
ghobs91 committed Apr 10, 2024
1 parent 7402935 commit 8f6b965
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 41 deletions.
2 changes: 1 addition & 1 deletion src/components/compose.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -814,7 +814,7 @@ function Compose({
} else if (!editStatus) {
params.visibility = visibility;
// params.inReplyToId = replyToStatus?.id || undefined;
// params.in_reply_to_id = replyToStatus?.id || undefined;
params.in_reply_to_id = replyToStatus?.id || undefined;
}
params = removeNullUndefined(params);
console.log('POST', params);
Expand Down
44 changes: 4 additions & 40 deletions src/components/search-form.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { forwardRef } from 'preact/compat';
import { useImperativeHandle, useRef, useState } from 'preact/hooks';
import { useSearchParams } from 'react-router-dom';
import { bridgifySearchQuery } from '../utils/protocol-translator';

import { api } from '../utils/api';

Expand Down Expand Up @@ -45,48 +46,11 @@ const SearchForm = forwardRef((props, ref) => {
q: query,
};
if (instance === "ditto.pub") {
let convertedQuery = query;
if (query.indexOf("@") === 0) {
convertedQuery = query.replace("@", "")
}
(async () => {
convertedQuery = query.replace("@", "_at_");
const matchedMostrHexPing = await fetch(`https://mostr.pub/.well-known/nostr.json?name=${convertedQuery}`, {method: "get"});
const matchedMostrHexPingResponse = await matchedMostrHexPing.json();
if (matchedMostrHexPingResponse && matchedMostrHexPingResponse["names"]) {
const matchedMostrHex = matchedMostrHexPingResponse["names"][convertedQuery]
const dittoProfileCall = await fetch(`https://ditto.pub/api/v1/accounts/${matchedMostrHex}`, {method: "get"});
const dittoProfileCallResponse = await dittoProfileCall.json();
location.hash = `/${instance}/a/${dittoProfileCallResponse.id}`;
}
})();
console.log(`instance === "ditto.pub"`)
bridgifySearchQuery(instance, query, params);
} else if (instance === "skybridge.fly.dev") {
if (query.indexOf("@") === 0) {
let replacedString = params.q.replace("@", "");
replacedString = replacedString.replace("@", ".");
replacedString += ".ap.brid.gy";
params.q = replacedString
} else if (query.indexOf("@") > 0) {
let replacedString = params.q.replace("@", ".");
replacedString += ".ap.brid.gy";
params.q = replacedString
}
params.q = bridgifySearchQuery(instance, query, params);
} else {
if (query.indexOf("/" === 0)) {
let replacedString = params.q.replace("/", "");
params.q = replacedString;
}
if (query.indexOf("@") === -1) {
if (query.indexOf("bsky.social") > -1 || query.indexOf("bsky.team") > -1) {
params.q += "@bsky.brid.gy"
} else if (query.match(/^[0-9a-fA-F]{64}$/)) {
params.q += "@mostr.pub"
}
} else if (query.indexOf("@twitter.com") > -1) {
const replacedString = params.q.replace("twitter.com", "bird.makeup")
params.q = replacedString
}
params.q = bridgifySearchQuery(instance, query, params);
}
if (type) params.type = type; // Preserve type
setSearchParams(params);
Expand Down
52 changes: 52 additions & 0 deletions src/utils/protocol-translator.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
export function bridgifySearchQuery(instance, query, params) {
if (instance === "ditto.pub") {
let convertedQuery = query;
if (query.indexOf("@") === 0) {
convertedQuery = query.replace("@", "")
}
(async () => {
convertedQuery = query.replace("@", "_at_");
const matchedMostrHexPing = await fetch(`https://mostr.pub/.well-known/nostr.json?name=${convertedQuery}`, {method: "get"});
const matchedMostrHexPingResponse = await matchedMostrHexPing.json();
if (matchedMostrHexPingResponse && matchedMostrHexPingResponse["names"]) {
const matchedMostrHex = matchedMostrHexPingResponse["names"][convertedQuery]
const dittoProfileCall = await fetch(`https://ditto.pub/api/v1/accounts/${matchedMostrHex}`, {method: "get"});
const dittoProfileCallResponse = await dittoProfileCall.json();
location.hash = `/${instance}/a/${dittoProfileCallResponse.id}`;
}
})();
console.log(`instance === "ditto.pub"`)
} else if (instance === "skybridge.fly.dev") {
if (query.indexOf("@") === 0) {
let replacedString = params.q.replace("@", "");
replacedString = replacedString.replace("@", ".");
replacedString += ".ap.brid.gy";
params.q = replacedString
return params.q;
} else if (query.indexOf("@") > 0) {
let replacedString = params.q.replace("@", ".");
replacedString += ".ap.brid.gy";
params.q = replacedString
return params.q;
}
} else {
if (query.indexOf("/" === 0)) {
let replacedString = params.q.replace("/", "");
params.q = replacedString;
return params.q;
}
if (query.indexOf("@") === -1) {
if (query.indexOf("bsky.social") > -1 || query.indexOf("bsky.team") > -1) {
params.q += "@bsky.brid.gy";
return params.q;
} else if (query.match(/^[0-9a-fA-F]{64}$/)) {
params.q += "@mostr.pub";
return params.q;
}
} else if (query.indexOf("@twitter.com") > -1) {
const replacedString = params.q.replace("twitter.com", "bird.makeup")
params.q = replacedString;
return params.q;
}
}
}

0 comments on commit 8f6b965

Please sign in to comment.