Browse code

- Ajout d'un minifieur d'url rudimentaire - bugfix de la css golcc sur ua/logins - Maj du numéro de version

Chrisix authored on 09/05/2017 18:30:19
Showing 3 changed files
... ...
@@ -282,6 +282,9 @@ SPAN.login {
282 282
   float: left;
283 283
   width: 125px;
284 284
   color: #833;
285
+  overflow: hidden;
286
+  white-space: nowrap;
287
+  text-overflow: ellipsis;
285 288
 }
286 289
 SPAN.ua {
287 290
   font-style: italic;
... ...
@@ -289,6 +292,9 @@ SPAN.ua {
289 292
   float: left;
290 293
   width: 125px;
291 294
   color: #533;
295
+  overflow: hidden;
296
+  white-space: nowrap;
297
+  text-overflow: ellipsis;
292 298
 }
293 299
 DIV.newpost {
294 300
   color: #000;
... ...
@@ -118,6 +118,29 @@ function writePlonk(message, board, post, login, info) {
118 118
     return message;
119 119
 }
120 120
 
121
+function writeUrl(message) {
122
+    var url_exp = new RegExp('(<a.*href="https?:\/\/([^\/?#"]+)(\/[^"?#]+)?["?#].*>)\[url\]');
123
+    function urlMini(m, tag, domain, url, offset, s) {
124
+        if ( /\/.*\.(png|jpg|jpeg|gif|webp)$/i.test(url) ) {
125
+            return tag+"[img]";
126
+        } else if ( /\/.*\.pdf$/i.test(url) ) {
127
+            return tag+"[pdf]";
128
+        } else {
129
+            if ( /\.[^.0-9]+$/.test(domain) ) {
130
+              dispdom = domain.susbtr(0, domain.lastIndexOf('.'));
131
+            }
132
+            else {
133
+              dispdom = domain;
134
+            }
135
+            if (dispdom.substr(0,4) == "www.") {
136
+              dispdom = dispdom.susbtr(4);
137
+            }
138
+            return tag+"["+dispdom+"]";
139
+        }
140
+    }
141
+    return message.replace(url_exp, urlMini);
142
+}
143
+
121 144
 function writeBigorno(message, board, postid, post) {
122 145
     var login_exp = (board.login) ? board.login : settings.value('default_login');
123 146
     if (login_exp) {
... ...
@@ -296,6 +319,33 @@ function seemsToBePostedByMe(board, login, info, realId) {
296 319
     return false;
297 320
 }
298 321
 
322
+var url_exp = new RegExp('(ht|f)tps?:\/\/([^\/?#]+)(?:[/?#]|$)(.*)');
323
+function urlMini(proto, domain, url) {
324
+    if ( proto == "f" ) {
325
+        return "[ftp]";
326
+    }
327
+    if ( /\/.*\.(png|jpg|jpeg|gif|webp)$/i.test(url) ) {
328
+        return "[img]";
329
+    }
330
+    if ( /\/.*\.(mpg|mpeg|mp4|webm|ogv|mkv|avi)$/i.test(url) ) {
331
+        return "[video]";
332
+    }
333
+    if ( /\/.*\.(mp3|ogg|aac|wav|flac)$/i.test(url) ) {
334
+        return "[audio]";
335
+    }
336
+    if ( /\/.*\.pdf$/i.test(url) ) {
337
+        return "[pdf]";
338
+    }
339
+    var dispdom = domain;
340
+    if ( /\.[^.0-9]+$/.test(domain) ) {
341
+      dispdom = domain.substr(0, domain.lastIndexOf('.'));
342
+    }
343
+    if (dispdom.substr(0,4) == "www.") {
344
+      dispdom = dispdom.substr(4);
345
+    }
346
+    return "["+dispdom+"]";
347
+}
348
+
299 349
 function insertToPinni(post, postId, board, clock, login, info, message, realId) {
300 350
     var allposts = GlobalPinni.getElementsByTagName("div") || [];
301 351
     var curDiv = null;
... ...
@@ -365,10 +415,16 @@ function insertToPinni(post, postId, board, clock, login, info, message, realId)
365 415
             }
366 416
         }
367 417
     }
368
-    // Toujours ouvrir les urls dans un autre onglet
418
+    // Formatage des urls
369 419
     var urls = post.getElementsByTagName('a');
370 420
     for (i=0; i<urls.length;i++) {
421
+        // Toujours ouvrir les urls dans un autre onglet
371 422
         urls[i].setAttribute('target','_blank');
423
+        var href = urls[i].getAttribute('href');
424
+        if (href && urls[i].innerHTML.strip() == "[url]") {
425
+            var m = url_exp.exec(href);
426
+            urls[i].innerHTML = urlMini(m[1], m[2], m[3]);
427
+        }
372 428
     }
373 429
     board.notify(NOTIF_NEW_POST, postId, post);
374 430
     // Effacement des posts en cas de dépassement de la taille maxi du pinnipède
... ...
@@ -4,7 +4,7 @@
4 4
  ************************************************************/
5 5
  
6 6
 // Constantes globales génériques
7
-var VERSION = '0.4.3';
7
+var VERSION = '0.4.4';
8 8
 
9 9
 // Constantes de gestion des états
10 10
 var STATE_LOADED = 'loaded'; // Tribune chargée