Constructor
new TagList()
Extends
- CountedList
- undefined
Members
objs
Has side effect of mutating the
CountedList.nameDict
property.
- Overrides:
Methods
addObjs(objs)
Add objects we don't already have. This does NOT set the
numToots
property on incoming objs!
Parameters:
Name | Type | Description |
---|---|---|
objs |
Array.<T> | Array of objects to add to the list. |
- Overrides:
filter(predicate) → {module:api/counted_list~CountedList.<T>}
Like the standard javascript
Array.filter()
.
Parameters:
Name | Type | Description |
---|---|---|
predicate |
function | Function to test each object in the list. |
- Overrides:
Returns:
A new CountedList containing only the objects that match the predicate.
- Type
- module:api/counted_list~CountedList.<T>
forEach()
Standard
Array.forEach()
approximation that invokes a callback for each object in the objs array.
- Overrides:
getObj(name) → {T|undefined}
Returns the object in the list with the given
name
(case-insensitive) if it exists.
Parameters:
Name | Type | Description |
---|---|---|
name |
string | The name of the object to retrieve. |
- Overrides:
Returns:
The object with the specified name, or undefined if not found.
- Type
- T | undefined
getTag(tag) → {NamedTootCount|undefined}
Like
CountedList.getObj
but takes a MastodonTag
argument.
Parameters:
Name | Type | Description |
---|---|---|
tag |
Hashtag | Tag whose name we want to locate the object for. |
Returns:
The
NamedTootCount
obj with the same name (if it exists).
- Type
- NamedTootCount | undefined
incrementCount(name, newObjDecoratoropt) → {T}
Increment
numToots
for the given name
. If no obj with name
exists
create a new one and call newObjDecorator()
to fill in its properties.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
name |
string | The name of the object to increment. | |
newObjDecorator |
function |
<optional> |
Optional function to decorate the new object with additional properties. |
- Overrides:
Returns:
The object with the incremented numToots.
- Type
- T
map()
Standard map function that applies a callback to each object in
this.objs
.
- Overrides:
maxValue(propertyName) → {number|undefined}
Get the maximum value for a given property across the
this.objs
array.
Parameters:
Name | Type | Description |
---|---|---|
propertyName |
- Overrides:
Returns:
The maximum value for the specified property, or undefined if none exist.
- Type
- number | undefined
nameToNumTootsDict() → {StringNumberDict}
Returns a dict of
obj.name
to obj.numToots
.
- Overrides:
Returns:
Dictionary mapping object names to their numToots counts.
- Type
- StringNumberDict
populateByCountingProps(objs, propExtractor)
Populate the objs array by counting the number of times each 'name' (given by
propExtractor
)
appears. Resulting BooleanFilterOption
s will be decorated with properties returned by
propExtractor()
.
Parameters:
Name | Type | Description |
---|---|---|
objs |
Array.<U> | Array of objects to count properties from. |
propExtractor |
function | Function to extract the decorator properties for the counted objects. |
- Overrides:
(async) removeFollowedTags()
Remove any hashtags that are followed by the FediAlgo user.
(async) removeInvalidTrendingTags()
Remove the configured list of invalid trending tags as well as japanese/korean etc. tags.
removeKeywords(keywords)
Remove any obj whose
name
matches any of the keywords
.
Parameters:
Name | Type | Description |
---|---|---|
keywords |
Array.<string> | Array of keywords to match against the object's name. |
- Overrides:
topObjs(maxObjsopt) → {Array.<T>}
Returns the objs in the list sorted by
numAccounts
if it exists, otherwise
by numToots
, and then by name. If maxObjs
is provided, returns
only the top maxObjs
objects.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
maxObjs |
number |
<optional> |
Optional maximum number of objects to return. |
- Overrides:
Returns:
Objects sorted by
numAccounts
if it exists, otherwise numToots
, then by name
- Type
- Array.<T>
(async, static) buildFavouritedTags()
Alternate constructor to build tags where numToots is set to the # of times user favourited that tag.
(async, static) buildParticipatedTags()
Alternate constructor to build a list of tags the user has posted about recently.
(static) fromParticipations(recentToots, includeRetootsopt) → {module:api/tag_list~TagList}
Alternate constructor that builds a list of Tags the user has posted about based on their toot history.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
recentToots |
Array.<Toot> | Array of Toot objects to count tags from. | |
includeRetoots |
boolean |
<optional> |
If true, includes retoots when counting tag usages. |
Returns:
A new TagList instance with tags counted from the recent user toots.
- Type
- module:api/tag_list~TagList
(static) fromUsageCounts(toots, source) → {module:api/tag_list~TagList}
Alternate constructor that populates
this.objs
with TagWithUsageCounts
objects
with numToots
set to the # of times the tag appears in the toots
array.
Note the special handling of retooters.
Parameters:
Name | Type | Description |
---|---|---|
toots |
Array.<Toot> | Array of Toot objects to count tags from. |
source |
CountedListSource | Source of the list (for logging/context). |
Returns:
A new TagList instance with tags counted from the toots.
- Type
- module:api/tag_list~TagList