Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
9344288
Prevent NullRef when categories are missing from the request body for…
mynameisbogdan Mar 8, 2026
8be82bb
Bump to 2.6.0
augustuen Jul 22, 2026
bc65f17
Fixed: HTTP Basic Auth credentials with non-ASCII characters (#2749)
kushiemoon-dev Jul 22, 2026
dd09f64
Bump to 2.6.1
augustuen Jul 26, 2026
c6034c8
New: Show indexer specific categories in search
chickenhuntr Jul 27, 2026
1efad4b
Bump to 2.6.2
augustuen Aug 2, 2026
50f3e7d
Fix flaresolverr status code in failed exception
mynameisbogdan Aug 8, 2026
861b635
Fixed: Catch empty cookies from FlareSolverr
mynameisbogdan Aug 10, 2026
0b8dc38
Bump sqlite to 3.53.4
mynameisbogdan Aug 12, 2026
1f7db1e
Fixed: (MoreThanTV) Removed, site has shutdown
ineednewpajamas Aug 12, 2026
9b4d30c
Defer deserialize JSON response resource with Lazy
mynameisbogdan May 3, 2026
e943e22
Improve download failed log message
mynameisbogdan Aug 17, 2026
3034263
Update M-Team-TP categories
mynameisbogdan Aug 10, 2026
70d18b5
Fixed: (FunFile) Moved to Cardigann
ineednewpajamas Aug 22, 2026
17e12c0
Multiple Translations updated by Weblate
weblate Aug 22, 2026
d6dcccd
Fix newznab redirect database migration
mynameisbogdan Oct 29, 2025
59b68a7
Fixed: (MyAnonamouse) perpage parameter API (#2792)
anonygma Aug 28, 2026
f45a250
Bump NUnit to 4.5.1
mynameisbogdan Aug 28, 2026
61bf546
Upgrade MonoTorrent to 3.0.2
markus101 Jun 23, 2025
8a08ee6
Fixed: (BTN) Improve searching for episodes with 3 digit numbering
mynameisbogdan Aug 22, 2026
647f0dc
Bump FluentAssertions to 7.2.2
mynameisbogdan Aug 8, 2026
9be50b9
Bump to 2.6.3
augustuen Aug 29, 2026
79491b4
Improve zip extraction
markus101 Aug 24, 2026
6a9a9a4
Add reason to health check
markus101 Oct 12, 2025
c32fc1b
New: Add hostname validation
markus101 Aug 24, 2026
c80c6fb
New: Add Trusted Networks setting
markus101 Aug 24, 2026
eb9a3a3
Fix allowed hosts check check on config file changes
mynameisbogdan Aug 29, 2026
ad94fed
Convert First Run to TypeScript
mynameisbogdan Aug 29, 2026
a434ee0
Multiple Translations updated by Weblate
weblate Aug 29, 2026
707f790
Fixed: Format of timestamps for Discord notifications from some systems
TheColorman Dec 21, 2025
455f1d6
Fixed: Definition existence check before grabbing the remote definition
mynameisbogdan Aug 12, 2026
a4302a2
Fixed: Prevent paths with multiple slashes causing backups to fail
Dec 1, 2025
3775057
Fixed: Handle 307 and 308 redirects for indexer download requests
mynameisbogdan Aug 31, 2026
a69014a
Fixed: Treat invalid contents as unavailable releases
mynameisbogdan Aug 30, 2026
6aaafa6
Improve external restart handling
TypNull Jan 27, 2026
765e24e
Bump Sentry to 5.16.3
mynameisbogdan Nov 25, 2025
bc0feb6
Bump to 2.6.4
augustuen Sep 5, 2026
0ee62b0
Remove unused package references
scaronni Sep 2, 2026
693c7c3
Multiple Translations updated by Weblate
weblate Sep 5, 2026
2294128
Fixed: Improve logging for 'Allowed Hosts' and 'Trusted Networks'
markus101 Aug 31, 2026
403b2f1
Don't skip health check if Allowed Hosts is set to *
markus101 Sep 2, 2026
28827d0
Fixed: Update help text for Allowed Hosts
markus101 Sep 9, 2026
f2d7c49
Bump to 2.6.5
augustuen Sep 13, 2026
12c3278
Multiple Translations updated by Weblate
weblate Sep 12, 2026
4eb90bf
Merge branch 'master' into sync-release-v2.6.5.5623
actuallyevan Sep 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ variables:
testsFolder: './_tests'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
majorVersion: '2.5.2'
majorVersion: '2.6.5'
minorVersion: $[counter('minorVersion', 1)]
prowlarrVersion: '$(majorVersion).$(minorVersion)'
buildName: '$(Build.SourceBranchName).$(prowlarrVersion)'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ function createMapStateToProps() {
return createSelector(
(state, { value }) => value,
(state) => state.settings.indexerCategories,
(value, categories) => {
(state) => state.indexers.items,
(state, { indexerIds }) => indexerIds,
(value, categories, indexers, indexerIds) => {
const values = [];

categories.items.forEach((element) => {
Expand All @@ -30,6 +32,31 @@ function createMapStateToProps() {
}
});

if (indexerIds && indexerIds.length === 1) {
const indexer = indexers.find((i) => i.id === indexerIds[0]);
const indexerCategories = (indexer?.capabilities?.categories ?? [])
.filter((category) => category.id >= 100000);

if (indexerCategories.length) {
const customCategoryGroup = {
key: `indexerCategories-${indexer.id}`,
value: indexer.name,
isDisabled: true
};

values.push(customCategoryGroup);

indexerCategories.forEach((category) => {
values.push({
key: category.id,
value: category.name,
hint: `(${category.id})`,
parentKey: customCategoryGroup.key
});
});
}
}

return {
value: value || [],
values
Expand Down Expand Up @@ -60,7 +87,7 @@ class IndexersSelectInputConnector extends Component {

IndexersSelectInputConnector.propTypes = {
name: PropTypes.string.isRequired,
indexerIds: PropTypes.number,
indexerIds: PropTypes.arrayOf(PropTypes.number),
value: PropTypes.arrayOf(PropTypes.number).isRequired,
values: PropTypes.arrayOf(PropTypes.object).isRequired,
onChange: PropTypes.func.isRequired
Expand Down
32 changes: 15 additions & 17 deletions frontend/src/Components/Page/Header/PageHeaderActionsMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ function PageHeaderActionsMenu(props: PageHeaderActionsMenuProps) {

const dispatch = useDispatch();

const { authentication, isDocker } = useSelector(
const { authentication, isContainerized } = useSelector(
(state: AppState) => state.system.status.item
);

Expand All @@ -48,24 +48,22 @@ function PageHeaderActionsMenu(props: PageHeaderActionsMenuProps) {
{translate('KeyboardShortcuts')}
</MenuItem>

{isDocker ? null : (
<>
<MenuItemSeparator />
<MenuItemSeparator />

<MenuItem onPress={handleRestartPress}>
<Icon className={styles.itemIcon} name={icons.RESTART} />
{translate('Restart')}
</MenuItem>
<MenuItem onPress={handleRestartPress}>
<Icon className={styles.itemIcon} name={icons.RESTART} />
{translate('Restart')}
</MenuItem>

<MenuItem onPress={handleShutdownPress}>
<Icon
className={styles.itemIcon}
name={icons.SHUTDOWN}
kind={kinds.DANGER}
/>
{translate('Shutdown')}
</MenuItem>
</>
{isContainerized ? null : (
<MenuItem onPress={handleShutdownPress}>
<Icon
className={styles.itemIcon}
name={icons.SHUTDOWN}
kind={kinds.DANGER}
/>
{translate('Shutdown')}
</MenuItem>
)}

{formsAuth ? (
Expand Down
34 changes: 0 additions & 34 deletions frontend/src/FirstRun/AuthenticationRequiredModal.js

This file was deleted.

27 changes: 27 additions & 0 deletions frontend/src/FirstRun/AuthenticationRequiredModal.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import React from 'react';
import Modal from 'Components/Modal/Modal';
import { sizes } from 'Helpers/Props';
import AuthenticationRequiredModalContent from './AuthenticationRequiredModalContent';

function onModalClose() {
// No-op
}

interface AuthenticationRequiredModalProps {
isOpen: boolean;
}

export default function AuthenticationRequiredModal({
isOpen,
}: AuthenticationRequiredModalProps) {
return (
<Modal
size={sizes.MEDIUM}
isOpen={isOpen}
closeOnBackgroundClick={false}
onModalClose={onModalClose}
>
<AuthenticationRequiredModalContent />
</Modal>
);
}
170 changes: 0 additions & 170 deletions frontend/src/FirstRun/AuthenticationRequiredModalContent.js

This file was deleted.

Loading
Loading