Skip to content

Commit 19d868f

Browse files
committed
Merge remote-tracking branch 'origin/dev'
2 parents 51015d8 + 6274a3b commit 19d868f

File tree

43 files changed

+968
-83
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+968
-83
lines changed

README.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ You are welcomed to contribute, instead of copying the Idea or Code.
2626
\
2727
3 - **Most Used Languages**, it provides linear progress chart for most used languages in personal repos.
2828
\
29-
4 - **Most Used Languages**, it provides pie chart for repos languages overview.
30-
29+
4 - **Repos Languages Overview**, it provides pie chart for repos languages overview.
30+
\
31+
5 - **Github Friends**, it provides images slider of your Github friends.
3132

3233
## Samples
3334

@@ -86,6 +87,19 @@ You are welcomed to contribute, instead of copying the Idea or Code.
8687
<img alt="Image changing depending on Dark/Light Github theme mode." src="https://raw.githubusercontent.com/m-r-davari/github_readme_beautifier/master/assets/hzh_langs_overview_light.gif" width="44%">
8788
</picture>
8889

90+
\
91+
**5 - Github Friends**
92+
93+
<picture>
94+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/m-r-davari/github_readme_beautifier/dev/assets/mr_github_friends_dark.gif">
95+
<img alt="Image changing depending on Dark/Light Github theme mode." src="https://raw.githubusercontent.com/m-r-davari/github_readme_beautifier/dev/assets/mr_github_friends_light.gif" width="44%">
96+
</picture>
97+
98+
<picture>
99+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/m-r-davari/github_readme_beautifier/dev/assets/mr_github_friends_circle_dark.gif">
100+
<img alt="Image changing depending on Dark/Light Github theme mode." src="https://raw.githubusercontent.com/m-r-davari/github_readme_beautifier/dev/assets/mr_github_friends_circle_light.gif" width="44%">
101+
</picture>
102+
89103
## How To Use
90104
1 - Go to the web app from [**here**](https://m-r-davari.github.io/github_readme_beautifier).\
91105
2 - Enter your Github username.\
@@ -114,4 +128,5 @@ You are welcomed to contribute, instead of copying the Idea or Code.
114128
- This project has been developed using Flutter web and is still under development.
115129
- If your Exported Gif has some lag you can generate it again to have smooth Gif loops.
116130
- Consider using optimized GIF files; they have a smaller size without losing quality and will load faster on your README file, even with a low-speed network.
131+
- If you want more image compression you can use this online tool [**ezgif**](https://ezgif.com/optimize).
117132

396 KB
Loading
431 KB
Loading
428 KB
Loading

assets/mr_github_friends_dark.gif

419 KB
Loading

assets/mr_github_friends_light.gif

482 KB
Loading

lib/core/di/app_bindings.dart

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ import 'package:ffmpeg_wasm/ffmpeg_wasm.dart';
22
import 'package:get/get.dart';
33
import 'package:github_readme_beautifier/core/network_manager/dio_network_manager_web.dart';
44
import 'package:github_readme_beautifier/core/network_manager/i_nework_manager.dart';
5+
import 'package:github_readme_beautifier/data/user/datasource/i_user_info_remote_datasource.dart';
6+
import 'package:github_readme_beautifier/data/user/datasource/user_info_remote_datasouce.dart';
7+
import 'package:github_readme_beautifier/data/user/repository/i_user_info_repository.dart';
8+
import 'package:github_readme_beautifier/data/user/repository/user_info_repository.dart';
59
import 'package:github_readme_beautifier/presentation/exporter/exporter_controller.dart';
610
import 'package:github_readme_beautifier/core/downloader/downloader.dart';
711
import 'package:github_readme_beautifier/core/downloader/i_downloader.dart';
@@ -11,8 +15,8 @@ import 'package:github_readme_beautifier/core/gif_optimizer/gif_optimizer.dart';
1115
import 'package:github_readme_beautifier/core/gif_optimizer/i_gif_optimizer.dart';
1216
import 'package:github_readme_beautifier/core/screenshot_maker/i_screenshot_maker.dart';
1317
import 'package:github_readme_beautifier/core/screenshot_maker/screenshot_maker.dart';
14-
import 'package:github_readme_beautifier/data/git_repos/datasource/git_repos.dart';
15-
import 'package:github_readme_beautifier/data/git_repos/datasource/i_git_repos.dart';
18+
import 'package:github_readme_beautifier/data/git_repos/datasource/git_repos_remote_datasource.dart';
19+
import 'package:github_readme_beautifier/data/git_repos/datasource/i_git_repos_remote_datasource.dart';
1620
import 'package:github_readme_beautifier/presentation/user/user_controller.dart';
1721
import 'package:github_readme_beautifier/utils/const_keeper.dart';
1822

@@ -29,7 +33,10 @@ class AppBindings extends Bindings {
2933
Get.put<INetworkManager>(DioNetworkManager(baseUrl: ConstKeeper.baseUrl));
3034
Get.put<IGitReposRemoteDataSource>(GitReposRemoteDataSource(networkManager: Get.find<INetworkManager>()));
3135

32-
Get.put(UserController(),permanent: true);
36+
37+
Get.put<IUserInfoRemoteDatasource>(UserInfoRemoteDatasource(networkManager: Get.find<INetworkManager>()));
38+
Get.put<IUserInfoRepository>(UserInfoRepository(remoteDatasource: Get.find<IUserInfoRemoteDatasource>()));
39+
Get.put<UserController>(UserController(),permanent: true);
3340

3441
}
3542

lib/core/gif_maker/gif_maker.dart

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ class GifMaker extends IGifMaker {
66

77
final FFmpeg _fFmpeg;
88
GifMaker(this._fFmpeg);
9+
int createdGifCount = 0;
910

1011
@override
1112
Future<Uint8List> createGif(
1213
{required List<Uint8List> frames, String frameRate = '50', String exportRate = '20', required String fileName,
13-
String loopNum = '0', String maxColors = '200', bool loopDelay = false}) async {
14+
String loopNum = '0', String maxColors = '200', bool loopDelay = false,String bayer='5'}) async {
1415

1516
//frame rate changes from 24 to 50
1617
//because with reverse frames we have total 50 frames and if we want to use 24 fps export it will deduct frames and cause the
@@ -25,34 +26,35 @@ class GifMaker extends IGifMaker {
2526
// '-r' is the frame rate of export it must be 24 and it effects the size of export gif higher -r will cause higher size.
2627
// best -r values is between 20~24.
2728

28-
29+
createdGifCount +=1;
30+
print('---- gifCreatedCount-- $createdGifCount --');
2931
for (int i = 0; i < frames.length; i++) {
30-
_fFmpeg.writeFile(i < 10 ? '${fileName}_00$i.png' : i < 100 ? '${fileName}_0$i.png' : '${fileName}_$i.png', frames[i]);
32+
_fFmpeg.writeFile(i < 10 ? '$fileName${createdGifCount}_00$i.png' : i < 100 ? '$fileName${createdGifCount}_0$i.png' : '$fileName${createdGifCount}_$i.png', frames[i]);
3133
}
3234

3335
await _fFmpeg.run([
3436
'-framerate', frameRate,
35-
'-i', '${fileName}_%03d.png',
37+
'-i', '$fileName${createdGifCount}_%03d.png',
3638
'-vf', 'palettegen=max_colors=$maxColors',
3739
//palettegen //palettegen=max_colors=256 //'palettegen=stats_mode=single:max_colors=256'
3840
'palette.png',
3941
]);
4042

4143
await _fFmpeg.run([
4244
'-framerate', frameRate,
43-
'-i', '${fileName}_%03d.png',
45+
'-i', '$fileName${createdGifCount}_%03d.png',
4446
'-i', 'palette.png',
45-
'-lavfi', 'paletteuse=dither=bayer:bayer_scale=5${loopDelay ? ', setpts=\'if(eq(N,${frames.length - 1}),2/TB,PTS)\'' : ''}',
47+
'-lavfi', 'paletteuse=dither=bayer:bayer_scale=$bayer${loopDelay ? ', setpts=\'if(eq(N,${frames.length - 1}),2/TB,PTS)\'' : ''}',
4648
//'-filter_complex', //'[0:v][1:v]paletteuse',//'[0:v][1:v]paletteuse=dither=bayer:bayer_scale=5'
4749
// [0:v][1:v]paletteuse=dither=floyd_steinberg //[0:v][1:v]paletteuse ////paletteuse
4850
//'-t', '1',
4951
'-loop', loopNum,
5052
'-r', exportRate,
5153
'-f', 'gif',
52-
'$fileName.gif',
54+
'$fileName$createdGifCount.gif',
5355
]);
54-
final gifData = _fFmpeg.readFile('$fileName.gif');
55-
_fFmpeg.unlink('$fileName.gif');
56+
final gifData = _fFmpeg.readFile('$fileName$createdGifCount.gif');
57+
_fFmpeg.unlink('$fileName$createdGifCount.gif');
5658
return gifData;
5759

5860
}

lib/core/gif_maker/i_gif_maker.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ abstract class IGifMaker {
55
/// this method will make Git file with Uint8List
66
Future<Uint8List> createGif(
77
{required List<Uint8List> frames, String frameRate = '50', String exportRate = '20', required String fileName,
8-
String loopNum = '0', String maxColors = '200', bool loopDelay = false}
8+
String loopNum = '0', String maxColors = '200', bool loopDelay = false,String bayer = '5'}
99
);
1010

1111
}

lib/core/states/states.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ abstract class UIState {
33
}
44

55

6+
class InitialState extends UIState {
7+
8+
}
9+
610
class LoadingState extends UIState {
711

812
}

0 commit comments

Comments
 (0)