feat(sync): WebDAV sur l'APK, et le QR du poste qui le porte
Jeton "utilisateur:mot-de-passe" sur une URL ni Gitea ni GitHub = WebDAV, authentification Basic. Fichier lu et ecrit tel quel ; l'ETag fait le sha (If-None-Match, If-Match, 412 -> conflit). Clair autorise vers l'IP fixe du poste seulement. Eprouve contre le WsgiDAV local : 304, PUT 204, puis synchro du poste. Docs : CLAUDE.md, android-client/README.md (page eveillee comprise). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -528,7 +528,7 @@
|
||||
champ. Une adresse d'API Gitea en fait un jeton d'acces personnel
|
||||
envoye en "token" ; l'endpoint PHP en fait un "Bearer". Le
|
||||
nommer d'apres un seul des deux le rend faux pour l'autre. -->
|
||||
<input class="field-in" id="tok" placeholder="access token"
|
||||
<input class="field-in" id="tok" placeholder="access token (WebDAV: user:password)"
|
||||
type="password" autocomplete="off">
|
||||
<div class="in-x" data-clear="tok">×</div>
|
||||
</div>
|
||||
@@ -615,13 +615,13 @@
|
||||
entier. Un input d'une ligne ne defilait pas sous le doigt dans la
|
||||
WebView de l'app, et la fin d'une URL d'API restait inatteignable. -->
|
||||
<textarea class="field-in multi" id="sUrl" rows="1"
|
||||
placeholder="repository URL - Gitea or github.com/owner/repo (private)"
|
||||
placeholder="repository URL - Gitea, github.com/owner/repo (private), or WebDAV file URL"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="none"
|
||||
spellcheck="false" inputmode="url"></textarea>
|
||||
<div class="in-x" data-clear="sUrl">×</div>
|
||||
</div>
|
||||
<div class="in-wrap">
|
||||
<input class="field-in" id="sTok" placeholder="access token"
|
||||
<input class="field-in" id="sTok" placeholder="access token (WebDAV: user:password)"
|
||||
type="password" autocomplete="off">
|
||||
<div class="in-x" data-clear="sTok">×</div>
|
||||
</div>
|
||||
@@ -1903,6 +1903,9 @@ function normalizeRepoUrl(u) {
|
||||
u = u.replace(/\s+/g, '');
|
||||
if (!u || /\/api\/v1\/repos\//i.test(u) || /api\.github\.com\/repos\//i.test(u) ||
|
||||
/\.php(\?|$)/i.test(u)) return u;
|
||||
// WEBDAV : l'URL du fichier lui-meme, a garder telle quelle. Seules les
|
||||
// formes longues d'un depot (/src/branch/, /blob/) finissent aussi en .json.
|
||||
if (/\.json$/i.test(u) && !/\/(src\/branch|blob)\//i.test(u)) return u;
|
||||
// GITHUB : l'adresse du depot est sur github.com, l'API sur api.github.com.
|
||||
var g = u.match(/^https?:\/\/(www\.)?github\.com\/([^\/]+)\/([^\/]+?)(?:\.git)?(?:\/blob\/[^\/]+\/(.+?))?\/?$/i);
|
||||
if (g) return 'https://api.github.com/repos/' + g[2] + '/' + g[3] +
|
||||
|
||||
Reference in New Issue
Block a user