Update migrations Logo source column normalize (#1404)
This commit is contained in:
@@ -1646,6 +1646,8 @@ export class SqliteClient {
|
||||
|
||||
/**
|
||||
* Extract and normalize source domain from a URL string.
|
||||
* Uses lowercase and removes www. prefix for case-insensitive matching.
|
||||
* This matches the server-side migration logic for consistent deduplication.
|
||||
* @param urlString The URL to extract the domain from
|
||||
* @returns The normalized source domain (e.g., 'github.com'), or 'unknown' if extraction fails
|
||||
*/
|
||||
@@ -1656,8 +1658,8 @@ export class SqliteClient {
|
||||
|
||||
try {
|
||||
const url = new URL(urlString.startsWith('http') ? urlString : `https://${urlString}`);
|
||||
// Normalize hostname by removing www. prefix
|
||||
return url.hostname.replace(/^www\./i, '');
|
||||
// Normalize hostname: lowercase and remove www. prefix
|
||||
return url.hostname.toLowerCase().replace(/^www\./, '');
|
||||
} catch {
|
||||
return 'unknown';
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+200
-6
@@ -883,7 +883,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -892,14 +925,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
@@ -1943,7 +2040,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -1952,14 +2082,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
|
||||
+200
-6
@@ -851,7 +851,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -860,14 +893,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
@@ -1911,7 +2008,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -1920,14 +2050,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+200
-6
@@ -883,7 +883,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -892,14 +925,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
@@ -1943,7 +2040,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -1952,14 +2082,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
|
||||
+200
-6
@@ -851,7 +851,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -860,14 +893,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
@@ -1911,7 +2008,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -1920,14 +2050,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -883,7 +883,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -892,14 +925,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
@@ -1943,7 +2040,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -1952,14 +2082,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
|
||||
@@ -851,7 +851,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -860,14 +893,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
@@ -1911,7 +2008,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -1920,14 +2050,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
|
||||
+104
-3
@@ -384,11 +384,47 @@ namespace AliasClientDb.Migrations
|
||||
");
|
||||
|
||||
// Migrate Logos from Services
|
||||
// Extract normalized domain from URL (e.g., 'https://www.github.com/path' -> 'github.com')
|
||||
// This matches the browser extension's FaviconService.extractSourceFromUrl() logic
|
||||
// Uses LOWER() for case-insensitive www. removal
|
||||
migrationBuilder.Sql(@"
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -397,15 +433,80 @@ namespace AliasClientDb.Migrations
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
");
|
||||
|
||||
// Update Items with LogoId
|
||||
// Match Items to Logos using the same normalized domain extraction logic
|
||||
migrationBuilder.Sql(@"
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
|
||||
@@ -845,7 +845,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -854,14 +887,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
|
||||
+100
-3
@@ -174,7 +174,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -183,14 +216,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
|
||||
@@ -852,7 +852,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -861,14 +894,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
@@ -1916,7 +2013,40 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
|
||||
SELECT
|
||||
lower(hex(randomblob(16))) AS Id,
|
||||
s.Url AS Source,
|
||||
-- Extract and normalize hostname: remove protocol, path, lowercase, and www. prefix
|
||||
REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) AS Source,
|
||||
s.Logo AS FileData,
|
||||
'image/png' AS MimeType,
|
||||
NULL AS FetchedAt,
|
||||
@@ -1925,14 +2055,78 @@ CREATE INDEX "IX_Tags_Name" ON "Tags" ("Name");
|
||||
0 AS IsDeleted
|
||||
FROM Services s
|
||||
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
|
||||
GROUP BY s.Url;
|
||||
GROUP BY REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
UPDATE Items
|
||||
SET LogoId = (
|
||||
SELECT l.Id FROM Logos l
|
||||
INNER JOIN Services s ON s.Url = l.Source
|
||||
INNER JOIN Services s ON REPLACE(
|
||||
LOWER(
|
||||
SUBSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END,
|
||||
1,
|
||||
CASE
|
||||
WHEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') > 0
|
||||
THEN INSTR(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END, '/') - 1
|
||||
ELSE LENGTH(
|
||||
CASE
|
||||
WHEN s.Url LIKE 'https://%' THEN SUBSTR(s.Url, 9)
|
||||
WHEN s.Url LIKE 'http://%' THEN SUBSTR(s.Url, 8)
|
||||
ELSE s.Url
|
||||
END)
|
||||
END
|
||||
)
|
||||
),
|
||||
'www.', ''
|
||||
) = l.Source
|
||||
INNER JOIN Credentials c ON c.ServiceId = s.Id
|
||||
WHERE c.Id = Items.Id
|
||||
LIMIT 1
|
||||
|
||||
Reference in New Issue
Block a user