Releases: michelcrypt4d4mus/fedialgo
Releases · michelcrypt4d4mus/fedialgo
v0.69.19
- Add input validation for
updateUserWeights() - Rename
AccountandTootobjects'homeserverURLtolocalServerUrl - Make
TheAlgorithm.weightPresetsinto a static variable, makeTheAlgorithm.weightedScorersprivate - Set
FEDIVERSE_POPULAR_SERVERSstaleness to 5 days - Convert a bunch of methods on
TheAlgorithm,Account, andTootobjects into getters - Rename
ObjWithTootCounttoNamedTootCount,WithCountstoTootCounts - Upgrade
masto.jsto 7.1.0 - Add "la" to
TAG_ONLY_STRINGS - Fix handling of failed hashtag timeline and search for hashtag API requests
v0.69.6
Behold: there is now incomplete JSDoc documentation for FediAlgo's various functions / objects / types etc.
- Convert
TheAlgorithm.getTimeline()to a getter namedtimeline,getApiErrorMsgs()toapiErrorMsgs,isLoading()andserverInfo()to getters - Convert
Tootobject'sattachmentType,author(),contentTagParagraph(),isDM(),isFollowed(),isPrivate(),realToot(),realURI(),realURL()to getters - Convert
Accountobject'shomeserver(),homeserverURL(),noteWithAccountInfo()to getters - Convert
Toot.getScore()toscoregetter - Rename
ObjWithTootCounttoNamedTootCount,WithCountstoTootCounts - Upgrade
masto.jsto 7.1.0 - Add "la" to
TAG_ONLY_STRINGS - Fix handling of failed hashtag timeline and search for hashtag API requests
v0.69.4
- Add
FollowersScorerto weight accounts that follow the fedialgo user, addgetFollowers()toMastoApi - Don't wait for scorers to finish preparing before integrating toots into the timeline
- Update the cache in the background instead of always dropping/reloading the whole thing when it gets stale
- Cap initial followed account retrieval before merging toots; beyond that they will be loaded in a background job that sleeps
config.apibackgroundLoadSleepBetweenRequestsMSin between requests - Set
FEDIVERSE_POPULAR_SERVERSstaleness to 72 hours - Lower
timeoutMSto 2,500 - Fix removing newly muted accounts from timeline
- Apply the
TRENDINGmultiplier to followed toots - Remove
TheAlgorithm.filterOptionDataSources()method - Much cleaner, decorator based approach to building options for
BooleanFilterOptionList
v0.66.0
- Add an
AuthorFollowerScorer - Add a
TOTAL_CHAOSweight preset - Add cache summary to
getCurrentState()'s storage info - Add
triggerMoarData()method toTheAlgorithm - Flip default sign on scores returned by penalty scorers: they now just return positive values like other scorers, but the default weights sign is flipped to negative
- Fix bug where
DiversityFeedScorerwas penalizing new toots with trending tags more than old toots with trending tags - Rename
Tootobject'srealAccount()toauthor() - Add a
withRetoot()method toToot BooleanFilterOptionList.maxNumTootsis now a variable not a function- Add
isFollowedto hashtagBooleanFilterOptions, fix bug with user filterdisplayNamefor followed accounts w/interactions
v0.64.2
- Add
getApiErrorMsgs()method toTheAlgorithm(and add those messages to thegetCurrentState()return value) - Add
maxCacheRecordsoption to API endpoints config, if timeline cache is full at startup truncate it down toconfig.toots.truncateFullTimelineToLengthrecords - Refactor decoration of filter options into various
BooleanFilterOptionListsubclasses - Change type of
UserData.favouriteAccountsandUserData.languagesPostedIntoBooleanFilterOptionList - Increase staleness for followed accounts and tags to 12 hours
- Call
setFeedInApp()with empty list as soon asreset()is called, completely reset scorers whenreset()is called - Suppress foreign script and muted keyword trending tags completely
- Remove muted/blocked accounts from
Toot.getConversation()results - On API error, check whether merge is supported before checking whether cache should be discarded in favor of new rows
- Fix edge case with error handling during
MastoApi.reset()whereWaitTimeobject is missing - Use
Promise.allSettled()to rescue partial results from API calls - Add bsd.network to
noMauServerslist - Add "mastodon" to the list of tags that can only match as tag names
v0.60.3
- Rename
BooleanFilter.validValues()toselectedOptions,isThisSelectionEnabled()toisOptionEnabled() - Add a
maxSecondsPerPageto the API config that will halt polling if things are going slow - Drop configured
initialMaxRecordsfor favourited toots to half of the other configuration because it seems to be the bottleneck BooleanFilterOptionobjects now contain more information than just the number of toots in the current timeline they match (in particular they now contain enough information to drive the color gradients in the demo app - e.g. number of user participations/favourites/etc for hashtags)- Add
filterOptionDataSources()method toTheAlgorithm - Add
UserData.favouriteAccountsproperty - Repair broken audio attachments like we do with images and videos
- Refactor an abstract
ObjWithCountListclass fromTagListclass so we can hold account info - Stop exporting
isDebugMode(it's a static property now) - Add
FEDIALGO_DEEP_DEBUGenv var and correspondingLogger.deep()method UserData'sTagproperties are nowTagListobjects;TagListhas a few new methods to make it easier to work with- Add
config.favouritedTags.maxParticipationsparam - Fully separate
TagTootsCacheKeyenum elements fromCacheKeyenum, exportTagTootsCacheKey
v0.56.3
- Dramatic performance improvements (everything is much faster)
- Remove japanese/korean/cyrillic etc. hashtags from trending list unless that's the user's current language
- Fix bug where scorers were not resetting their state when
reset()was called and all other data was reset - Uniquify
Notificationobjects from the API against the cache as they arrive to avoid the build up of dupes serverInfo()only returns the v2 API data structure for a server configuration. If the v1 version exists it will be logged and thrown as an error.- Add
entriesSortedByValue(),optionsSortedByValue(),optionsSortedByName(),optionsAsTagList(),isThisSelectionEnabled(), andnumOptions()methods toBooleanFilter` QUICK_MODEisn't always turned on whenNODE_ENV=developmentand/theFEDIALGO_DEBUGenv var is turned on; has to be enabled separately now- Fix bug when filtering for hashtags w/french/german/etc diacritic chars
- Fix bug with moar data poller favourited toots puller that caused it to think it was finished after pulling only the minimum number of favourited toots
- Add
replyMentions()method to Toot objects - Add filters to
getCurrentState()return value - Lower staleness duration for server side filters to four hours
- Adjust
DISCUSSIONSweight preset - Standardized
Loggerclass - New
TagListclass
v0.53.1
- Add toots based on hashtags the user favourites often but doesn't participate in much or follow to the feed sources
- Significant performance improvements to
Toot.completeProperties()from precompiled tag regexes - Introduce
TagListandTootsForTagsListclasses to manage participated/favourited/trending tags - Don't remove user's own toots from the threaded view
- Add
serverInfo()toTheAlgorithm; addserverInfo()response and trending data togetCurrentState() - Add
homeInstanceInfo()method toAccount
v0.50.0
- Add
getConversation()method toTootclass - Remove blocked/muted keywords from the visible list of trending tags
- Add
completeflag argument toreset()method
v0.48.9
- Add a
FollowedAccountsScorerto offset the slowly creeping dominance of participated and followed tags in the feed - Fix bug where cached home timeline toots were being sorted backwards before being truncated
- Suppress warnings when
ChaosScorercallsgetIndividualScore() - Make numeric filters apply to the
realToot()not the retoot, don't usescoreInfoto get values for numeric filters - Change format of
TootScoreobject, removealternateScoreInfo()andformatScore()methods (functionality moved to demo app) - Rename some config options
- Add
#governmentto the list of "too generic to trend" tags