-
Notifications
You must be signed in to change notification settings - Fork 13
/
Message.js
49 lines (37 loc) · 1.44 KB
/
Message.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
"use strict";
/* jshint multistr: true */
/* jshint newcap: false */
/* Représente un post JVC (.msg) */
SK.Message = function($msg) {
this.$msg = $msg;
this.text = this.initText();
this.author = this.initAuthor();
this.date = this.initDate();
this.permalink = this.initPermalink();
};
/* Récupère le texte présent dans le post $(.msg) passé en paramètre
* Note : remplace les images par leur attribut alt */
SK.Message.prototype.initText = function() {
var $message = this.$msg.find(".post").clone();
//On supprime les éventuelles citations
$message.find(".quote-bloc").remove();
$message.find("img").each(function() {
$(this).replaceWith($(this).attr("alt"));
});
return $message.text().trim();
};
/* Retourne le permalien du post $(.msg) passé en paramètre */
SK.Message.prototype.initPermalink = function() {
return location.protocol + "//" + location.host + location.pathname + "#" + this.$msg.attr("id");
};
/* Retourne l'auteur du post $(.msg) passé en paramètre */
SK.Message.prototype.initAuthor = function() {
return this.$msg.find(".pseudo > strong").html().trim();
};
/* Retourne la date du post $(.msg) passé en paramètre */
SK.Message.prototype.initDate = function() {
var $dateBloc = this.$msg.find(".date");
var dateString = $dateBloc.text().trim();
var match = dateString.match(/Posté (via mobile )?le([^:]*[^\s]*)/);
return match[2].trim();
};