Path: blob/master/node_modules/@adiwajshing/baileys/WASignalGroup/sender_key_name.js
1126 views
function isNull(str) {1return str === null || str.value === '';2}34/**5* java String hashCode 的实现6* @param strKey7* @return intValue8*/9function intValue(num) {10const MAX_VALUE = 0x7fffffff;11const MIN_VALUE = -0x80000000;12if (num > MAX_VALUE || num < MIN_VALUE) {13// eslint-disable-next-line14return (num &= 0xffffffff);15}16return num;17}1819function hashCode(strKey) {20let hash = 0;21if (!isNull(strKey)) {22for (let i = 0; i < strKey.length; i++) {23hash = hash * 31 + strKey.charCodeAt(i);24hash = intValue(hash);25}26}27return hash;28}2930/**31* 将js页面的number类型转换为java的int类型32* @param num33* @return intValue34*/3536class SenderKeyName {37constructor(groupId, sender) {38this.groupId = groupId;39this.sender = sender;40}4142getGroupId() {43return this.groupId;44}4546getSender() {47return this.sender;48}4950serialize() {51return `${this.groupId}::${this.sender.id}::${this.sender.deviceId}`;52}5354toString() {55return this.serialize();56}5758equals(other) {59if (other === null) return false;60if (!(other instanceof SenderKeyName)) return false;61return this.groupId === other.groupId && this.sender.toString() === other.sender.toString();62}6364hashCode() {65return hashCode(this.groupId) ^ hashCode(this.sender.toString());66}67}6869module.exports = SenderKeyName;7071