Group.php
1.31 KB
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
/**
* Created by PhpStorm.
* User: Hanson
* Date: 2016/12/13
* Time: 20:56
*/
namespace Hanson\Robot\Collections;
use Hanson\Robot\Support\Console;
use Illuminate\Support\Collection;
class Group extends Collection
{
static $instance = null;
/**
* create a single instance
*
* @return Group
*/
public static function getInstance()
{
if(static::$instance === null){
static::$instance = new Group();
}
return static::$instance;
}
/**
* 判断是否群组
*
* @param $userName
* @return bool
*/
public static function isGroup($userName){
return strstr($userName, '@@') !== false;
}
/**
* 根据群名筛选群组
*
* @param $name
* @param bool $blur
* @param bool $onlyUsername
* @return static
*/
public function getGroupsByNickname($name, $blur = false, $onlyUsername = false)
{
$groups = $this->filter(function($value, $key) use ($name, $blur){
if(!$blur){
return $value['NickName'] === $name;
}else{
return str_contains($value['NickName'], $name);
}
});
if($onlyUsername){
$groups = $groups->only(['UserName']);
}
return $groups;
}
}