From 7d217c6d75d610ebe8605f81e0e60a0dd080d284 Mon Sep 17 00:00:00 2001 From: Felipe Bueno Date: Thu, 6 Jun 2024 17:01:13 -0300 Subject: [PATCH] 1.2.9+24: Add tabs hot, recent & builders --- lib/data/api.dart | 21 +++++++++++++++- lib/data/models/post_type.dart | 44 ++++++++++++++++++++++++++-------- pubspec.yaml | 2 +- 3 files changed, 55 insertions(+), 12 deletions(-) diff --git a/lib/data/api.dart b/lib/data/api.dart index 2da9d11..2fecdcb 100644 --- a/lib/data/api.dart +++ b/lib/data/api.dart @@ -133,6 +133,21 @@ final class Api { }).toList(); } + String getGraphQLBody({ + required PostType postType, + required String cursor, + }) { + if (postType == PostType.top || + postType == PostType.home || + postType == PostType.recent) { + return '{"operationName":"SubItems","variables":{"includeComments":false,"cursor":"$cursor"},"query":"fragment SubFields on Sub {\\n name\\n postTypes\\n allowFreebies\\n rankingType\\n billingType\\n billingCost\\n billingAutoRenew\\n billedLastAt\\n billPaidUntil\\n baseCost\\n userId\\n desc\\n status\\n moderated\\n moderatedCount\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n}\\n\\nfragment SubFullFields on Sub {\\n ...SubFields\\n user {\\n name\\n id\\n optional {\\n streak\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nfragment ItemFields on Item {\\n id\\n parentId\\n createdAt\\n deletedAt\\n title\\n url\\n user {\\n id\\n name\\n optional {\\n streak\\n __typename\\n }\\n meMute\\n __typename\\n }\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n }\\n otsHash\\n position\\n sats\\n boost\\n bounty\\n bountyPaidTo\\n noteId\\n path\\n upvotes\\n meSats\\n meDontLikeSats\\n meBookmark\\n meSubscription\\n meForward\\n outlawed\\n freebie\\n bio\\n ncomments\\n commentSats\\n lastCommentAt\\n maxBid\\n isJob\\n company\\n location\\n remote\\n subName\\n pollCost\\n pollExpiresAt\\n status\\n uploadId\\n mine\\n imgproxyUrls\\n rel\\n __typename\\n}\\n\\nfragment CommentItemExtFields on Item {\\n text\\n root {\\n id\\n title\\n bounty\\n bountyPaidTo\\n subName\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n __typename\\n }\\n user {\\n name\\n optional {\\n streak\\n __typename\\n }\\n id\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nquery SubItems(\$sub: String, \$sort: String, \$cursor: String, \$type: String, \$name: String, \$when: String, \$from: String, \$to: String, \$by: String, \$limit: Limit, \$includeComments: Boolean = false) {\\n sub(name: \$sub) {\\n ...SubFullFields\\n __typename\\n }\\n items(\\n sub: \$sub\\n sort: \$sort\\n cursor: \$cursor\\n type: \$type\\n name: \$name\\n when: \$when\\n from: \$from\\n to: \$to\\n by: \$by\\n limit: \$limit\\n ) {\\n cursor\\n items {\\n ...ItemFields\\n ...CommentItemExtFields @include(if: \$includeComments)\\n position\\n __typename\\n }\\n pins {\\n ...ItemFields\\n ...CommentItemExtFields @include(if: \$includeComments)\\n position\\n __typename\\n }\\n __typename\\n }\\n}"}'; + } else if (postType == PostType.notifications) { + return '{"operationName":"Notifications","variables":{"cursor":"$cursor"},"query":"fragment ItemFields on Item {\\n id\\n parentId\\n createdAt\\n deletedAt\\n title\\n url\\n user {\\n id\\n name\\n optional {\\n streak\\n __typename\\n }\\n meMute\\n __typename\\n }\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n }\\n otsHash\\n position\\n sats\\n boost\\n bounty\\n bountyPaidTo\\n noteId\\n path\\n upvotes\\n meSats\\n meDontLikeSats\\n meBookmark\\n meSubscription\\n meForward\\n outlawed\\n freebie\\n bio\\n ncomments\\n commentSats\\n lastCommentAt\\n maxBid\\n isJob\\n company\\n location\\n remote\\n subName\\n pollCost\\n pollExpiresAt\\n status\\n uploadId\\n mine\\n imgproxyUrls\\n rel\\n apiKey\\n __typename\\n}\\n\\nfragment ItemFullFields on Item {\\n ...ItemFields\\n text\\n root {\\n id\\n title\\n bounty\\n bountyPaidTo\\n subName\\n user {\\n id\\n name\\n optional {\\n streak\\n __typename\\n }\\n __typename\\n }\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n meSubscription\\n __typename\\n }\\n __typename\\n }\\n forwards {\\n userId\\n pct\\n user {\\n name\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nfragment InviteFields on Invite {\\n id\\n createdAt\\n invitees {\\n id\\n name\\n __typename\\n }\\n gift\\n limit\\n revoked\\n user {\\n id\\n name\\n optional {\\n streak\\n __typename\\n }\\n __typename\\n }\\n poor\\n __typename\\n}\\n\\nfragment SubFields on Sub {\\n name\\n createdAt\\n postTypes\\n allowFreebies\\n rankingType\\n billingType\\n billingCost\\n billingAutoRenew\\n billedLastAt\\n billPaidUntil\\n baseCost\\n userId\\n desc\\n status\\n moderated\\n moderatedCount\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n}\\n\\nquery Notifications(\$cursor: String, \$inc: String) {\\n notifications(cursor: \$cursor, inc: \$inc) {\\n cursor\\n lastChecked\\n notifications {\\n __typename\\n ... on Mention {\\n id\\n sortTime\\n mention\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on ItemMention {\\n id\\n sortTime\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on Votification {\\n id\\n sortTime\\n earnedSats\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on Revenue {\\n id\\n sortTime\\n earnedSats\\n subName\\n __typename\\n }\\n ... on ForwardedVotification {\\n id\\n sortTime\\n earnedSats\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on Streak {\\n id\\n sortTime\\n days\\n __typename\\n }\\n ... on Earn {\\n id\\n sortTime\\n minSortTime\\n earnedSats\\n sources {\\n posts\\n comments\\n tipPosts\\n tipComments\\n __typename\\n }\\n __typename\\n }\\n ... on Referral {\\n id\\n sortTime\\n __typename\\n }\\n ... on Reply {\\n id\\n sortTime\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on FollowActivity {\\n id\\n sortTime\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on TerritoryPost {\\n id\\n sortTime\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on TerritoryTransfer {\\n id\\n sortTime\\n sub {\\n ...SubFields\\n __typename\\n }\\n __typename\\n }\\n ... on Invitification {\\n id\\n sortTime\\n invite {\\n ...InviteFields\\n __typename\\n }\\n __typename\\n }\\n ... on JobChanged {\\n id\\n sortTime\\n item {\\n ...ItemFields\\n __typename\\n }\\n __typename\\n }\\n ... on SubStatus {\\n id\\n sortTime\\n sub {\\n ...SubFields\\n __typename\\n }\\n __typename\\n }\\n ... on InvoicePaid {\\n id\\n sortTime\\n earnedSats\\n invoice {\\n id\\n nostr\\n comment\\n lud18Data\\n __typename\\n }\\n __typename\\n }\\n ... on WithdrawlPaid {\\n id\\n sortTime\\n earnedSats\\n withdrawl {\\n autoWithdraw\\n __typename\\n }\\n __typename\\n }\\n ... on Reminder {\\n id\\n sortTime\\n item {\\n ...ItemFullFields\\n __typename\\n }\\n __typename\\n }\\n }\\n __typename\\n }\\n}"}'; + } + + return '{"operationName":"SubItems","variables":{"includeComments":false,"sub":"${postType.name}","cursor":"$cursor"},"query":"fragment SubFields on Sub {\\n name\\n postTypes\\n allowFreebies\\n rankingType\\n billingType\\n billingCost\\n billingAutoRenew\\n billedLastAt\\n billPaidUntil\\n baseCost\\n userId\\n desc\\n status\\n moderated\\n moderatedCount\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n}\\n\\nfragment SubFullFields on Sub {\\n ...SubFields\\n user {\\n name\\n id\\n optional {\\n streak\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nfragment ItemFields on Item {\\n id\\n parentId\\n createdAt\\n deletedAt\\n title\\n url\\n user {\\n id\\n name\\n optional {\\n streak\\n __typename\\n }\\n meMute\\n __typename\\n }\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n }\\n otsHash\\n position\\n sats\\n boost\\n bounty\\n bountyPaidTo\\n noteId\\n path\\n upvotes\\n meSats\\n meDontLikeSats\\n meBookmark\\n meSubscription\\n meForward\\n outlawed\\n freebie\\n bio\\n ncomments\\n commentSats\\n lastCommentAt\\n maxBid\\n isJob\\n company\\n location\\n remote\\n subName\\n pollCost\\n pollExpiresAt\\n status\\n uploadId\\n mine\\n imgproxyUrls\\n rel\\n __typename\\n}\\n\\nfragment CommentItemExtFields on Item {\\n text\\n root {\\n id\\n title\\n bounty\\n bountyPaidTo\\n subName\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n __typename\\n }\\n user {\\n name\\n optional {\\n streak\\n __typename\\n }\\n id\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nquery SubItems(\$sub: String, \$sort: String, \$cursor: String, \$type: String, \$name: String, \$when: String, \$from: String, \$to: String, \$by: String, \$limit: Limit, \$includeComments: Boolean = false) {\\n sub(name: \$sub) {\\n ...SubFullFields\\n __typename\\n }\\n items(\\n sub: \$sub\\n sort: \$sort\\n cursor: \$cursor\\n type: \$type\\n name: \$name\\n when: \$when\\n from: \$from\\n to: \$to\\n by: \$by\\n limit: \$limit\\n ) {\\n cursor\\n items {\\n ...ItemFields\\n ...CommentItemExtFields @include(if: \$includeComments)\\n position\\n __typename\\n }\\n pins {\\n ...ItemFields\\n ...CommentItemExtFields @include(if: \$includeComments)\\n position\\n __typename\\n }\\n __typename\\n }\\n}"}'; + } + Future _fetchAndSaveCurrBuildId() async { final response = await _dio.get('https://stacker.news'); @@ -167,7 +182,11 @@ final class Api { } try { - final body = jsonDecode(postType.getGraphQLBody(cursor)); + final graphBody = getGraphQLBody( + postType: postType, + cursor: cursor, + ); + final body = jsonDecode(graphBody); final response = await _dio.post( 'https://stacker.news/api/graphql', data: body, diff --git a/lib/data/models/post_type.dart b/lib/data/models/post_type.dart index 3178f03..4d71582 100644 --- a/lib/data/models/post_type.dart +++ b/lib/data/models/post_type.dart @@ -1,9 +1,12 @@ import 'package:flutter/material.dart'; enum PostType { + home, + recent, top, bitcoin, meta, + builders, opensource, nostr, tech, @@ -13,6 +16,10 @@ enum PostType { String get endpoint { if (this == PostType.top) { return 'top/posts/day.json?when=day'; + } else if (this == PostType.recent) { + return 'recent.json'; + } else if (this == PostType.home) { + return 'index.json'; } else if (this == PostType.notifications) { return 'notifications.json'; } @@ -25,6 +32,12 @@ enum PostType { case PostType.top: return 'top'; + case PostType.home: + return 'index'; + + case PostType.recent: + return 'recent'; + case PostType.bitcoin: return 'bitcoin'; @@ -37,6 +50,9 @@ enum PostType { case PostType.meta: return 'meta'; + case PostType.builders: + return 'builders'; + case PostType.opensource: return 'opensource'; @@ -56,6 +72,12 @@ enum PostType { case PostType.top: return 'Top'; + case PostType.home: + return 'Home'; + + case PostType.recent: + return 'Recent'; + case PostType.bitcoin: return 'Bitcoin'; @@ -68,6 +90,9 @@ enum PostType { case PostType.meta: return 'Meta'; + case PostType.builders: + return 'Builders'; + case PostType.opensource: return 'FOSS'; @@ -87,6 +112,12 @@ enum PostType { case PostType.top: return Icons.new_releases; + case PostType.home: + return Icons.home; + + case PostType.recent: + return Icons.bar_chart_rounded; + case PostType.bitcoin: return Icons.monetization_on; @@ -99,6 +130,9 @@ enum PostType { case PostType.meta: return Icons.info; + case PostType.builders: + return Icons.handyman_sharp; + case PostType.opensource: return Icons.code; @@ -112,14 +146,4 @@ enum PostType { return Icons.new_releases; } } - - String getGraphQLBody(String cursor) { - if (this == PostType.top) { - return '{"operationName":"SubItems","variables":{"includeComments":false,"cursor":"$cursor"},"query":"fragment SubFields on Sub {\\n name\\n postTypes\\n allowFreebies\\n rankingType\\n billingType\\n billingCost\\n billingAutoRenew\\n billedLastAt\\n billPaidUntil\\n baseCost\\n userId\\n desc\\n status\\n moderated\\n moderatedCount\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n}\\n\\nfragment SubFullFields on Sub {\\n ...SubFields\\n user {\\n name\\n id\\n optional {\\n streak\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nfragment ItemFields on Item {\\n id\\n parentId\\n createdAt\\n deletedAt\\n title\\n url\\n user {\\n id\\n name\\n optional {\\n streak\\n __typename\\n }\\n meMute\\n __typename\\n }\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n }\\n otsHash\\n position\\n sats\\n boost\\n bounty\\n bountyPaidTo\\n noteId\\n path\\n upvotes\\n meSats\\n meDontLikeSats\\n meBookmark\\n meSubscription\\n meForward\\n outlawed\\n freebie\\n bio\\n ncomments\\n commentSats\\n lastCommentAt\\n maxBid\\n isJob\\n company\\n location\\n remote\\n subName\\n pollCost\\n pollExpiresAt\\n status\\n uploadId\\n mine\\n imgproxyUrls\\n rel\\n __typename\\n}\\n\\nfragment CommentItemExtFields on Item {\\n text\\n root {\\n id\\n title\\n bounty\\n bountyPaidTo\\n subName\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n __typename\\n }\\n user {\\n name\\n optional {\\n streak\\n __typename\\n }\\n id\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nquery SubItems(\$sub: String, \$sort: String, \$cursor: String, \$type: String, \$name: String, \$when: String, \$from: String, \$to: String, \$by: String, \$limit: Limit, \$includeComments: Boolean = false) {\\n sub(name: \$sub) {\\n ...SubFullFields\\n __typename\\n }\\n items(\\n sub: \$sub\\n sort: \$sort\\n cursor: \$cursor\\n type: \$type\\n name: \$name\\n when: \$when\\n from: \$from\\n to: \$to\\n by: \$by\\n limit: \$limit\\n ) {\\n cursor\\n items {\\n ...ItemFields\\n ...CommentItemExtFields @include(if: \$includeComments)\\n position\\n __typename\\n }\\n pins {\\n ...ItemFields\\n ...CommentItemExtFields @include(if: \$includeComments)\\n position\\n __typename\\n }\\n __typename\\n }\\n}"}'; - } else if (this == PostType.notifications) { - return '{"operationName":"Notifications","variables":{"cursor":"$cursor"},"query":"fragment ItemFields on Item {\\n id\\n parentId\\n createdAt\\n deletedAt\\n title\\n url\\n user {\\n id\\n name\\n optional {\\n streak\\n __typename\\n }\\n meMute\\n __typename\\n }\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n }\\n otsHash\\n position\\n sats\\n boost\\n bounty\\n bountyPaidTo\\n noteId\\n path\\n upvotes\\n meSats\\n meDontLikeSats\\n meBookmark\\n meSubscription\\n meForward\\n outlawed\\n freebie\\n bio\\n ncomments\\n commentSats\\n lastCommentAt\\n maxBid\\n isJob\\n company\\n location\\n remote\\n subName\\n pollCost\\n pollExpiresAt\\n status\\n uploadId\\n mine\\n imgproxyUrls\\n rel\\n apiKey\\n __typename\\n}\\n\\nfragment ItemFullFields on Item {\\n ...ItemFields\\n text\\n root {\\n id\\n title\\n bounty\\n bountyPaidTo\\n subName\\n user {\\n id\\n name\\n optional {\\n streak\\n __typename\\n }\\n __typename\\n }\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n meSubscription\\n __typename\\n }\\n __typename\\n }\\n forwards {\\n userId\\n pct\\n user {\\n name\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nfragment InviteFields on Invite {\\n id\\n createdAt\\n invitees {\\n id\\n name\\n __typename\\n }\\n gift\\n limit\\n revoked\\n user {\\n id\\n name\\n optional {\\n streak\\n __typename\\n }\\n __typename\\n }\\n poor\\n __typename\\n}\\n\\nfragment SubFields on Sub {\\n name\\n createdAt\\n postTypes\\n allowFreebies\\n rankingType\\n billingType\\n billingCost\\n billingAutoRenew\\n billedLastAt\\n billPaidUntil\\n baseCost\\n userId\\n desc\\n status\\n moderated\\n moderatedCount\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n}\\n\\nquery Notifications(\$cursor: String, \$inc: String) {\\n notifications(cursor: \$cursor, inc: \$inc) {\\n cursor\\n lastChecked\\n notifications {\\n __typename\\n ... on Mention {\\n id\\n sortTime\\n mention\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on ItemMention {\\n id\\n sortTime\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on Votification {\\n id\\n sortTime\\n earnedSats\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on Revenue {\\n id\\n sortTime\\n earnedSats\\n subName\\n __typename\\n }\\n ... on ForwardedVotification {\\n id\\n sortTime\\n earnedSats\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on Streak {\\n id\\n sortTime\\n days\\n __typename\\n }\\n ... on Earn {\\n id\\n sortTime\\n minSortTime\\n earnedSats\\n sources {\\n posts\\n comments\\n tipPosts\\n tipComments\\n __typename\\n }\\n __typename\\n }\\n ... on Referral {\\n id\\n sortTime\\n __typename\\n }\\n ... on Reply {\\n id\\n sortTime\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on FollowActivity {\\n id\\n sortTime\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on TerritoryPost {\\n id\\n sortTime\\n item {\\n ...ItemFullFields\\n text\\n __typename\\n }\\n __typename\\n }\\n ... on TerritoryTransfer {\\n id\\n sortTime\\n sub {\\n ...SubFields\\n __typename\\n }\\n __typename\\n }\\n ... on Invitification {\\n id\\n sortTime\\n invite {\\n ...InviteFields\\n __typename\\n }\\n __typename\\n }\\n ... on JobChanged {\\n id\\n sortTime\\n item {\\n ...ItemFields\\n __typename\\n }\\n __typename\\n }\\n ... on SubStatus {\\n id\\n sortTime\\n sub {\\n ...SubFields\\n __typename\\n }\\n __typename\\n }\\n ... on InvoicePaid {\\n id\\n sortTime\\n earnedSats\\n invoice {\\n id\\n nostr\\n comment\\n lud18Data\\n __typename\\n }\\n __typename\\n }\\n ... on WithdrawlPaid {\\n id\\n sortTime\\n earnedSats\\n withdrawl {\\n autoWithdraw\\n __typename\\n }\\n __typename\\n }\\n ... on Reminder {\\n id\\n sortTime\\n item {\\n ...ItemFullFields\\n __typename\\n }\\n __typename\\n }\\n }\\n __typename\\n }\\n}"}'; - } - - return '{"operationName":"SubItems","variables":{"includeComments":false,"sub":"$name","cursor":"$cursor"},"query":"fragment SubFields on Sub {\\n name\\n postTypes\\n allowFreebies\\n rankingType\\n billingType\\n billingCost\\n billingAutoRenew\\n billedLastAt\\n billPaidUntil\\n baseCost\\n userId\\n desc\\n status\\n moderated\\n moderatedCount\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n}\\n\\nfragment SubFullFields on Sub {\\n ...SubFields\\n user {\\n name\\n id\\n optional {\\n streak\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nfragment ItemFields on Item {\\n id\\n parentId\\n createdAt\\n deletedAt\\n title\\n url\\n user {\\n id\\n name\\n optional {\\n streak\\n __typename\\n }\\n meMute\\n __typename\\n }\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n meSubscription\\n nsfw\\n __typename\\n }\\n otsHash\\n position\\n sats\\n boost\\n bounty\\n bountyPaidTo\\n noteId\\n path\\n upvotes\\n meSats\\n meDontLikeSats\\n meBookmark\\n meSubscription\\n meForward\\n outlawed\\n freebie\\n bio\\n ncomments\\n commentSats\\n lastCommentAt\\n maxBid\\n isJob\\n company\\n location\\n remote\\n subName\\n pollCost\\n pollExpiresAt\\n status\\n uploadId\\n mine\\n imgproxyUrls\\n rel\\n __typename\\n}\\n\\nfragment CommentItemExtFields on Item {\\n text\\n root {\\n id\\n title\\n bounty\\n bountyPaidTo\\n subName\\n sub {\\n name\\n userId\\n moderated\\n meMuteSub\\n __typename\\n }\\n user {\\n name\\n optional {\\n streak\\n __typename\\n }\\n id\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nquery SubItems(\$sub: String, \$sort: String, \$cursor: String, \$type: String, \$name: String, \$when: String, \$from: String, \$to: String, \$by: String, \$limit: Limit, \$includeComments: Boolean = false) {\\n sub(name: \$sub) {\\n ...SubFullFields\\n __typename\\n }\\n items(\\n sub: \$sub\\n sort: \$sort\\n cursor: \$cursor\\n type: \$type\\n name: \$name\\n when: \$when\\n from: \$from\\n to: \$to\\n by: \$by\\n limit: \$limit\\n ) {\\n cursor\\n items {\\n ...ItemFields\\n ...CommentItemExtFields @include(if: \$includeComments)\\n position\\n __typename\\n }\\n pins {\\n ...ItemFields\\n ...CommentItemExtFields @include(if: \$includeComments)\\n position\\n __typename\\n }\\n __typename\\n }\\n}"}'; - } } diff --git a/pubspec.yaml b/pubspec.yaml index 49ddf60..f76d317 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,7 +11,7 @@ description: A new Flutter project. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.2.9+23 +version: 1.2.9+24 environment: sdk: ">=3.4.0 <4.0.0"