fix(sync): QR plus court (adresse du depot, sans sur-echappement) + TRY_HARDER au decodage
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1353,8 +1353,23 @@ begin
|
||||
try
|
||||
LQr.Encoding := qrUTF8NoBOM;
|
||||
LQr.QuietZone := 4;
|
||||
LQr.Data := 'pmserver://sync?u=' + TNetEncoding.URL.Encode(LQrUrl) +
|
||||
'&t=' + TNetEncoding.URL.Encode(LQrTok);
|
||||
// LE PLUS COURT POSSIBLE : moins de caracteres = modules plus gros,
|
||||
// lisibles par une camera. L'adresse du depot plutot que l'URL d'API
|
||||
// (le telephone la rallonge a l'enregistrement), et seuls les
|
||||
// caracteres qui casseraient la requete sont echappes - TNetEncoding
|
||||
// changeait chaque ":" et "/" en trois caracteres.
|
||||
var LShort := LQrUrl;
|
||||
var LApi := Pos('/api/v1/repos/', LShort);
|
||||
if (LApi > 0) and EndsText('/contents/vault-sync.json', LShort) then
|
||||
LShort := Copy(LShort, 1, LApi) +
|
||||
Copy(LShort, LApi + Length('/api/v1/repos/'),
|
||||
Length(LShort) - LApi - Length('/api/v1/repos/') - Length('/contents/vault-sync.json') + 1);
|
||||
LShort := StringReplace(LShort, '%', '%25', [rfReplaceAll]);
|
||||
LShort := StringReplace(LShort, '&', '%26', [rfReplaceAll]);
|
||||
LShort := StringReplace(LShort, '#', '%23', [rfReplaceAll]);
|
||||
LShort := StringReplace(LShort, '+', '%2B', [rfReplaceAll]);
|
||||
LShort := StringReplace(LShort, ' ', '%20', [rfReplaceAll]);
|
||||
LQr.Data := 'pmserver://sync?u=' + LShort + '&t=' + TNetEncoding.URL.Encode(LQrTok);
|
||||
LSize := LQr.Rows;
|
||||
for var R := 0 to LQr.Rows - 1 do
|
||||
for var C := 0 to LQr.Columns - 1 do
|
||||
|
||||
Reference in New Issue
Block a user