easy_client library
Imperative Lanis client without Riverpod providers.
Import this instead of package:liblanis/liblanis.dart when you want
session management and parsers without a ProviderContainer.
Classes
- AccountSummary
- Account row without password (safe for lists).
- AppletContext
- Runtime context for applet parsers (session + account-scoped settings).
- AppletMeta
- Dart-only applet metadata (no Flutter icons/widgets).
-
AppletParser<
T> - Base class for SPH applet parsers (Dart-only, no Flutter).
-
AppletResponseStream<
T> - Applets
- Built-in applet identifiers and defaults used by parsers.
- CalendarEvent
- CalendarEventCategory
- CalendarParser
- ChatCreationData
- ClearTextAccount
- Account credentials with plaintext password (in-memory / just decrypted).
- ConnectionChecker
- Probes SPH reachability and tracks session Dio outcomes.
- Conversation
- ConversationsParser
- ConversationsRefreshResult
- CourseFolderDetails
- CourseFolderHistoryEntry
- CourseFolderHistoryEntryFile
- CourseFolderNewEntryConstraints
- CourseFolderStartPage
- CourseFolderStartPageEntryInformation
- CreationResponse
- CurrentEntry
- DataStorageParser
- DetailedLesson
- EasyAccounts
- Account CRUD for EasyLanisClient (no Riverpod).
- EasyConnection
- Connection status wrapper for EasyLanisClient.
- EasyLanisClient
- Imperative Lanis client without Riverpod.
- EasyParsers
- Lazy registry of applet parsers for EasyLanisClient.
- EasySettings
- Shared and per-account settings for EasyLanisClient.
- ExceptionWithStackTrace
-
FetcherResponse<
T> - FileInfo
- Lightweight file descriptor used by lessons and related applets.
- FileNode
- FileStatus
- FolderNode
- Homework
- KnownParticipant
- LanisClient
- Thin bootstrap for the liblanis Riverpod graph.
- LanisConfig
- Immutable configuration produced by LanisClient.configure.
- LanisDatabase
- Unified SPH client database (file or in-memory).
- LanisSession
- Authenticated SPH HTTP session for one account.
- Lesson
- LessonExam
- LessonMark
- LessonsStudentParser
- LessonsTeacherHome
- LessonsTeacherParser
- LessonTeacher
- LessonUpload
- MemorySecretStore
- In-process SecretStore for tests and in-memory database mode.
- OverviewEntry
- OverviewFiltering
- A useful class to directly modify the most recent downloaded overview stream, so it's fast.
- OwnFile
- PublicFile
- ReceiverEntry
- ReplyToConversationResult
- SecretStore
- Host-provided secure storage for account secrets (passwords).
- SphTimeOfDay
-
Dart-only replacement for Flutter's
TimeOfDay. - StorageManager
- Configurable document/file cache backed by the session Dio client.
- StudentStudyGroup
- StudentStudyGroupExam
- StudentStudyGroups
- StudentStudyGroupTeacher
- StudyGroupsStudentParser
- Substitution
- A data class to store a single substitution information
- SubstitutionDay
- A data class to store all substitution information for a single day
- SubstitutionInfo
- A data class to store all information that is available to every user for a single substitution day This value is plain html
- SubstitutionPlan
- A data class to store all substitution information available
- SubstitutionsParser
- TimeTable
- TimeTableData
- TimeTableRow
- TimetableStudentParser
- TimetableSubject
- TypedSettings
- Typed key-value helpers over JSON-encoded settings rows.
- UnparsedMessage
- UploadFile
Enums
- AccountType
- ChatType
- ConnectionStatus
- ContentStatus
- FetcherStatus
- FileActions
- PersonType
- SearchFunction
- Collection of filter functions for the search.
- TimeTableRowType
- TimeTableType
-
Week plan container. Naming stays
TimeTable(notTimetable) to avoid a wide rename across app + package; new types should use theTimetable*prefix.
Extensions
- AccountTypeX on AccountType
-
AppletParserFetch
on AppletParser<
T> - Convenience wrapper around AppletParser.fetchData.
Properties
- getUsernameInsideHTML → RegExp
-
final
Functions
-
isUnexpectedParserError(
Object error) → bool -
Whether
errorshould be forwarded to LanisConfig.onUnexpectedError.
Typedefs
-
EntryFilter
= Map<
String, dynamic> - {"strict": Bool, "filter": List<String>}
-
Lessons
= List<
Lesson> - StoragePathLayout = String Function({required int accountId, required String cacheRoot, required String filename, required String urlHash})
-
SubstitutionFilter
= Map<
String, EntryFilter> -
TimetableDay
= List<
TimetableSubject> - UnexpectedErrorHandler = void Function(Object error, StackTrace stackTrace, {required String appletPhpUrl})
- Host-supplied hook for unexpected applet fetch failures.
Exceptions / Errors
- AccountAlreadyExistsException
- ConfigurationException
- CredentialsIncompleteException
- EncryptionCheckFailedException
- LanisDownException
- LanisException
- Base exception for SPH / Lanis client errors.
- LoginTimeoutException
- NetworkException
- NoConnectionException
- NotSupportedException
- StorageNotConfiguredException
- UnknownException
- UnsaltedOrUnknownException
- WrongCredentialsException