See https://github.com/manmal/GIFs for an updated build
You can grab the app from Mac App Store (it's free! ๐) or download the latest version directly here.
git clone https://github.com/orta/GIFs.git
cd GIFs/objc
make bootstrap
A Mac App for finding GIFs
License: Other
See https://github.com/manmal/GIFs for an updated build
You can grab the app from Mac App Store (it's free! ๐) or download the latest version directly here.
git clone https://github.com/orta/GIFs.git
cd GIFs/objc
make bootstrap
Could you please make this app available in the Dutch Appstore?
Would be nice to have the option to save to disk when right clicking an open gif
When trying to save a gif from any of the categories, it crashes with the following:
GIFs[38822]: service com.apple.appkit.xpc.openAndSavePanelService failed to init an instance of NSSavePanelService on behalf of <NSRemoteView: 0x7feeba5214e0> due to {
callStackSymbols = (
0 CoreFoundation 0x00007fff8b70966c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff906db76e objc_exception_throw + 43
2 CoreFoundation 0x00007fff8b70951d +[NSException raise:format:] + 205
3 com.apple.appkit.xpc.openAndSavePanelService 0x0000000101561d9f com.apple.appkit.xpc.openAndSavePanelService + 7583
4 AppKit 0x00007fff8c0a2417 -[NSViewController _loadViewIfRequired] + 75
5 AppKit 0x00007fff8bd729b1 -[NSViewController view] + 30
6 ViewBridge 0x00007fff926374ed -[NSViewServiceMarshal _bootstrap:replyData:] + 9685
7 ViewBridge 0x00007fff9263857b -[NSViewServiceMarshal bootstrap:withReply:] + 168
8 CoreFoundation 0x00007fff8b5e23cc __invoking___ + 140
9 CoreFoundation 0x00007fff8b5e2222 -[NSInvocation invoke] + 290
10 CoreFoundation 0x00007fff8b680e76 -[NSInvocation invokeWithTarget:] + 54
11 ViewBridge 0x00007fff92668f4c -[NSVB_ViewServiceImplicitAnimationDecodingProxy forwardInvocation:] + 264
12 CoreFoundation 0x00007fff8b6538a6 ___forwarding___ + 518
13 CoreFoundation 0x00007fff8b653618 _CF_forwarding_prep_0 + 120
14 CoreFoundation 0x00007fff8b5e23cc __invoking___ + 140
15 CoreFoundation 0x00007fff8b5e2222 -[NSInvocation invoke] + 290
16 CoreFoundation 0x00007fff8b680e76 -[NSInvocation invokeWithTarget:] + 54
17 ViewBridge 0x00007fff926402b3 -[NSVB_QueueingProxy forwardInvocation:] + 319
18 CoreFoundation 0x00007fff8b6538a6 ___forwarding___ + 518
19 CoreFoundation 0x00007fff8b653618 _CF_forwarding_prep_0 + 120
20 CoreFoundation 0x00007fff8b5e23cc __invoking___ + 140
21 CoreFoundation 0x00007fff8b5e2222 -[NSInvocation invoke] + 290
22 CoreFoundation 0x00007fff8b680e76 -[NSInvocation invokeWithTarget:] + 54
23 CoreFoundation 0x00007fff8b6538a6 ___forwarding___ + 518
24 CoreFoundation 0x00007fff8b653618 _CF_forwarding_prep_0 + 120
25 CoreFoundation 0x00007fff8b5e23cc __invoking___ + 140
26 CoreFoundation 0x00007fff8b5e2222 -[NSInvocation invoke] + 290
27 ViewBridge 0x00007fff9266cb53 __deferNSXPCInvocationOntoMainThread_block_invoke + 85
28 ViewBridge 0x00007fff9266c78e __deferBlockOntoMainThread_block_invoke_2 + 390
29 CoreFoundation 0x00007fff8b62756c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
30 CoreFoundation 0x00007fff8b619675 __CFRunLoopDoBlocks + 341
31 CoreFoundation 0x00007fff8b6191b6 __CFRunLoopRun + 1814
32 CoreFoundation 0x00007fff8b618858 CFRunLoopRunSpecific + 296
33 HIToolbox 0x00007fff957c7aef RunCurrentEventLoopInMode + 235
34 HIToolbox 0x00007fff957c786a ReceiveNextEventCommon + 431
35 HIToolbox 0x00007fff957c76ab _BlockUntilNextEventMatchingListInModeWithFilter + 71
36 AppKit 0x00007fff8bcb3f81 _DPSNextEvent + 964
37 AppKit 0x00007fff8bcb3730 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194
38 ViewBridge 0x00007fff926228be -[NSViewServiceApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 70
39 AppKit 0x00007fff8bca7593 -[NSApplication run] + 594
40 AppKit 0x00007fff8bc92a14 NSApplicationMain + 1832
41 libxpc.dylib 0x00007fff8a267ef2 _xpc_objc_main + 793
42 libxpc.dylib 0x00007fff8a269a9d _parse_sysctl_once + 0
43 ViewBridge 0x00007fff92670fd5 xpc_connection_handler + 0
44 ViewBridge 0x00007fff92625b36 NSViewServiceApplicationMain + 2035
45 com.apple.appkit.xpc.openAndSavePanelService 0x0000000101566035 main + 208
46 libdyld.dylib 0x00007fff913ff5c9 start + 1
47 ??? 0x0000000000000001 0x0 + 1
);
name = NSInternalInconsistencyException;
reason = "+[NSOpenAndSavePanelService loadViewToService:isOpenPanel:appCentric:] : failed entitlements check";
userInfo = "<null>";
}
Crash log for XPC:
Process: com.apple.appkit.xpc.openAndSavePanelService [43428]
Path: /System/Library/Frameworks/AppKit.framework/Versions/C/XPCServices/com.apple.appkit.xpc.openAndSavePanelService.xpc/Contents/MacOS/com.apple.appkit.xpc.openAndSavePanelService
Identifier: com.apple.appkit.xpc.openAndSavePanelService
Version: 1.0 (1)
Build Info: AppKit-1344072000000000~1
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: GIFs [38822]
User ID: 501
Date/Time: 2015-04-05 09:36:11.984 -0700
OS Version: Mac OS X 10.10.2 (14C1514)
Report Version: 11
Anonymous UUID: 3697A3C3-6D90-BBFB-1E35-AF06C3DDACEF
Sleep/Wake UUID: 78123323-3041-4766-8527-899726814AC3
Time Awake Since Boot: 50000 seconds
Time Since Wake: 7700 seconds
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Application Specific Information:
Crashing on exception: +[NSOpenAndSavePanelService loadViewToService:isOpenPanel:appCentric:] : failed entitlements check
Application Specific Backtrace 1:
0 CoreFoundation 0x00007fff8b70966c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff906db76e objc_exception_throw + 43
2 CoreFoundation 0x00007fff8b70951d +[NSException raise:format:] + 205
3 com.apple.appkit.xpc.openAndSavePanelService 0x0000000101561d9f com.apple.appkit.xpc.openAndSavePanelService + 7583
4 AppKit 0x00007fff8c0a2417 -[NSViewController _loadViewIfRequired] + 75
5 AppKit 0x00007fff8bd729b1 -[NSViewController view] + 30
6 ViewBridge 0x00007fff926374ed -[NSViewServiceMarshal _bootstrap:replyData:] + 9685
7 ViewBridge 0x00007fff9263857b -[NSViewServiceMarshal bootstrap:withReply:] + 168
8 CoreFoundation 0x00007fff8b5e23cc __invoking___ + 140
9 CoreFoundation 0x00007fff8b5e2222 -[NSInvocation invoke] + 290
10 CoreFoundation 0x00007fff8b680e76 -[NSInvocation invokeWithTarget:] + 54
11 ViewBridge 0x00007fff92668f4c -[NSVB_ViewServiceImplicitAnimationDecodingProxy forwardInvocation:] + 264
12 CoreFoundation 0x00007fff8b6538a6 ___forwarding___ + 518
13 CoreFoundation 0x00007fff8b653618 _CF_forwarding_prep_0 + 120
14 CoreFoundation 0x00007fff8b5e23cc __invoking___ + 140
15 CoreFoundation 0x00007fff8b5e2222 -[NSInvocation invoke] + 290
16 CoreFoundation 0x00007fff8b680e76 -[NSInvocation invokeWithTarget:] + 54
17 ViewBridge 0x00007fff926402b3 -[NSVB_QueueingProxy forwardInvocation:] + 319
18 CoreFoundation 0x00007fff8b6538a6 ___forwarding___ + 518
19 CoreFoundation 0x00007fff8b653618 _CF_forwarding_prep_0 + 120
20 CoreFoundation 0x00007fff8b5e23cc __invoking___ + 140
21 CoreFoundation 0x00007fff8b5e2222 -[NSInvocation invoke] + 290
22 CoreFoundation 0x00007fff8b680e76 -[NSInvocation invokeWithTarget:] + 54
23 CoreFoundation 0x00007fff8b6538a6 ___forwarding___ + 518
24 CoreFoundation 0x00007fff8b653618 _CF_forwarding_prep_0 + 120
25 CoreFoundation 0x00007fff8b5e23cc __invoking___ + 140
26 CoreFoundation 0x00007fff8b5e2222 -[NSInvocation invoke] + 290
27 ViewBridge 0x00007fff9266cb53 __deferNSXPCInvocationOntoMainThread_block_invoke + 85
28 ViewBridge 0x00007fff9266c78e __deferBlockOntoMainThread_block_invoke_2 + 390
29 CoreFoundation 0x00007fff8b62756c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
30 CoreFoundation 0x00007fff8b619675 __CFRunLoopDoBlocks + 341
31 CoreFoundation 0x00007fff8b6191b6 __CFRunLoopRun + 1814
32 CoreFoundation 0x00007fff8b618858 CFRunLoopRunSpecific + 296
33 HIToolbox 0x00007fff957c7aef RunCurrentEventLoopInMode + 235
34 HIToolbox 0x00007fff957c786a ReceiveNextEventCommon + 431
35 HIToolbox 0x00007fff957c76ab _BlockUntilNextEventMatchingListInModeWithFilter + 71
36 AppKit 0x00007fff8bcb3f81 _DPSNextEvent + 964
37 AppKit 0x00007fff8bcb3730 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194
38 ViewBridge 0x00007fff926228be -[NSViewServiceApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 70
39 AppKit 0x00007fff8bca7593 -[NSApplication run] + 594
40 AppKit 0x00007fff8bc92a14 NSApplicationMain + 1832
41 libxpc.dylib 0x00007fff8a267ef2 _xpc_objc_main + 793
42 libxpc.dylib 0x00007fff8a269a9d _parse_sysctl_once + 0
43 ViewBridge 0x00007fff92670fd5 xpc_connection_handler + 0
44 ViewBridge 0x00007fff92625b36 NSViewServiceApplicationMain + 2035
45 com.apple.appkit.xpc.openAndSavePanelService 0x0000000101566035 main + 208
46 libdyld.dylib 0x00007fff913ff5c9 start + 1
47 ??? 0x0000000000000001 0x0 + 1
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 com.apple.AppKit 0x00007fff8bff6060 -[NSApplication _crashOnException:] + 109
1 com.apple.AppKit 0x00007fff8bff64eb -[NSApplication reportException:] + 140
2 com.apple.AppKit 0x00007fff8bca76bc -[NSApplication run] + 891
3 com.apple.AppKit 0x00007fff8bc92a14 NSApplicationMain + 1832
4 libxpc.dylib 0x00007fff8a267ef2 _xpc_objc_main + 793
5 libxpc.dylib 0x00007fff8a269a9d xpc_main + 490
6 com.apple.ViewBridge 0x00007fff92670fd5 -[NSXPCSharedListener resume] + 16
7 com.apple.ViewBridge 0x00007fff92625b36 NSViewServiceApplicationMain + 2035
8 com.apple.appkit.xpc.openAndSavePanelService 0x0000000101566035 main + 208
9 libdyld.dylib 0x00007fff913ff5c9 start + 1
Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0 libsystem_kernel.dylib 0x00007fff95f59232 kevent64 + 10
1 libdispatch.dylib 0x00007fff98259a6a _dispatch_mgr_thread + 52
Thread 2:
0 libsystem_kernel.dylib 0x00007fff95f534de mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff95f5264f mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff8b619b34 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff8b618ffb __CFRunLoopRun + 1371
4 com.apple.CoreFoundation 0x00007fff8b618858 CFRunLoopRunSpecific + 296
5 com.apple.AppKit 0x00007fff8be1733b _NSEventThread + 137
6 libsystem_pthread.dylib 0x00007fff8e257268 _pthread_body + 131
7 libsystem_pthread.dylib 0x00007fff8e2571e5 _pthread_start + 176
8 libsystem_pthread.dylib 0x00007fff8e25541d thread_start + 13
Thread 3:
0 libsystem_kernel.dylib 0x00007fff95f5894a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8e25540d start_wqthread + 13
Thread 4:
0 libsystem_kernel.dylib 0x00007fff95f5894a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8e25540d start_wqthread + 13
Thread 5:
0 libsystem_kernel.dylib 0x00007fff95f5894a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8e25540d start_wqthread + 13
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x00007f8f4e016c00 rbx: 0x000061000005d310 rcx: 0x0000000000000001 rdx: 0x0000000000000000
rdi: 0x00007fff5e69f2a0 rsi: 0x0000000000001167 rbp: 0x00007fff5e69f740 rsp: 0x00007fff5e69f730
r8: 0x0000600000060200 r9: 0x0000000000000000 r10: 0x00007f8f4e003a70 r11: 0x00000000000019ff
r12: 0x00007fff906ce0c0 r13: 0x000060000005db50 r14: 0x00007fff906ce0c0 r15: 0x00007fff79216340
rip: 0x00007fff8bff6060 rfl: 0x0000000000010202 cr2: 0x00006000002c2000
Logical CPU: 0
Error Code: 0x00000000
Trap Number: 6
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 1
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 35389
thread_create: 0
thread_set_state: 0
VM Region Summary:
ReadOnly portion of Libraries: Total=177.3M resident=186.1M(105%) swapped_out_or_unallocated=16777216.0T(9922226946048%)
Writable regions: Total=115.7M written=3048K(3%) resident=6936K(6%) swapped_out=0K(0%) unallocated=108.9M(94%)
REGION TYPE VIRTUAL
=========== =======
Activity Tracing 2048K
CG shared images 144K
CoreServices 32K
Kernel Alloc Once 8K
MALLOC 86.4M
MALLOC (admin) 32K
Memory Tag 242 12K
STACK GUARD 56.0M
Stack 10.1M
VM_ALLOCATE 17.1M
__DATA 15.1M
__IMAGE 528K
__LINKEDIT 70.3M
__TEXT 107.0M
__UNICODE 544K
mapped file 42.5M
shared memory 4K
=========== =======
TOTAL 407.8M
This can be reproduced by pressing โS or right clicking and saving an image with the MAS version of GIFs.
Is it possible to exclude images from search that are NSFW?
It should ideally flash it but keep the selection the same.
The zip file linked to on the README is outdated.
An app like this would be awesome to have on Windows too. Hope we can see a Windows version someday!
Tried the pre-built download and building from HEAD (bf0a0d82af
).
Crash happens in ARAnalytics
's +initialize
with a EXEC_BAD_ACCESS
error.
System info: rMBP, 10.8.5, Xcode 5.1.
It appears I"m missing a step in the compile instructions. Following the steps in the README doesn't appear to produce a binary. What comes next after funning make bootstrap
?
$ make bootstrap
bundle install
Using ZenTest 4.11.0
Using RubyInline 3.12.3
Using i18n 0.6.11
Using multi_json 1.10.1
Using activesupport 3.2.19
Using claide 0.7.0
Using fuzzy_match 2.0.4
Using json_pure 1.8.1
Using nap 0.8.0
Using cocoapods-core 0.34.4
Using cocoapods-downloader 0.7.2
Using cocoapods-plugins 0.3.1
Using netrc 0.7.8
Using cocoapods-trunk 0.3.1
Using cocoapods-try 0.4.1
Using colored 1.2
Using escape 0.0.4
Using open4 1.3.4
Using xcodeproj 0.19.4
Using cocoapods 0.34.4
Using osx_keychain 1.0.0
Using cocoapods-keys 0.6.2
Using bundler 1.7.7
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
Setting up API Keys, leave blank if you don't know.
What is your Giphy API Key ( use the one on https://github.com/Giphy/GiphyAPI if you do not have one )?
bundle exec pod keys set GiphyAPIKey "$GIPHY_API_KEY" GIFs
Saved GiphyAPIKey to mine.
pod install
Analyzing dependencies
CocoaPods 0.37.2 is available.
To update use: `sudo gem install cocoapods`
For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.
Downloading dependencies
Using AFNetworking (2.5.4)
Using GIFKit (0.1.0)
Using StandardPaths (1.5.6)
Generating Pods project
Integrating client project
Adding keys
head: head: illegal byte count -- 0illegal byte count -- 0
Hi,
Maybe it's a voluntary thing but why is the fullscreen mode disabled? Since an option+click
allows any user not to go fullscreen shouldn't the app support fullscreen mode? :-)
Event not fullscreen it's an awesome app anyway ๐
Thanks!
Long descriptions are mostly cut off now. I often miss being able to read the entire thing.
I only notice it after using it a few times and searching that I right click on the image and copy to clipboard. Nothing really happens, right now the work around is to open in the browser and then copy the browser URL
Finding JNWCollectionView too unstable.
Moving back to IKImageView is also an option.
See screenshot: http://cl.ly/Wjxy
I don't know what the current state of development is (I'm on 10.9), but it'd be awesome to have the title of the reddit post included somewhere in the UI. A common use case for me is to right-click and open the context just to see the title.
The keyboard shortcuts don't work (show, copy, etc), but right-clicking and selecting the option does.
The current popover is horrible.
Hello, app constantly crashes on first run with this trace:
Date/Time: 2014-12-27 01:23:24.178 +0600
OS Version: Mac OS X 10.10.1 (14B25)
Report Version: 11
Anonymous UUID: 21F91327-571A-C347-EADE-398CB2FCEB3C
Sleep/Wake UUID: E9BFFD63-ED70-4EFC-9E85-B30680920CF0
Time Awake Since Boot: 54000 seconds
Time Since Wake: 3300 seconds
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[2]'
terminating with uncaught exception of type NSException
abort() called
Application Specific Backtrace 1:
0 CoreFoundation 0x00007fff9305164c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff884f46de objc_exception_throw + 43
2 CoreFoundation 0x00007fff92ef5068 -[__NSPlaceholderArray initWithObjects:count:] + 360
3 CoreFoundation 0x00007fff92f5b6b4 +[NSArray arrayWithObjects:count:] + 52
4 All The GIFs 0x0000000107916849 -[ORSharingController awakeFromNib] + 1097
5 CoreFoundation 0x00007fff92f5f83f -[NSSet makeObjectsPerformSelector:] + 223
6 AppKit 0x00007fff8ff80ffd -[NSIBObjectData nibInstantiateWithOwner:options:topLevelObjects:] + 1216
7 AppKit 0x00007fff8fa92f05 loadNib + 384
8 AppKit 0x00007fff90000f80 +[NSBundle(NSNibLoading) _loadNibFile:nameTable:options:withZone:ownerBundle:] + 313
9 AppKit 0x00007fff8fa925d5 -[NSBundle(NSNibLoading) loadNibNamed:owner:topLevelObjects:] + 201
10 AppKit 0x00007fff8fa923a1 +[NSBundle(NSNibLoading) loadNibNamed:owner:] + 344
11 AppKit 0x00007fff8fa8de09 NSApplicationMain + 605
What do you think about adding the ability to download a GIF?
Adding a PR for this now if you think its valuable.
Square thumbnails distort non 1:1 GIFs. Solutions can be a mosaic of thumbnails of varied aspect ratios or keeping square previews but with aspect-fill.
On my 12" MacBook, this regularly takes up > 30% of my CPU usage, and gets a spot in the vilified "apps using significant energy" list, even when it's not actively visible on-screen and merely open.
I assume there's only so much that can be done about performance when actively being used โ makes sense when rendering a few dozen large-ish gifs at once โย but this shouldn't need to do anything while not visible on-screen.
I'm not familiar enough with OS X dev to know what the proper solution is (is it just a matter of responding to the right app delegate lifecycle methods and pausing active gif animation while not active? Is App Nap a thing third-party devs can implement?) but happy to help out with some dev time if it'd be helpful.
I figured out a somewhat hackish way to do this:
NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
[pasteboard clearContents];
[pasteboard setString:[NSString stringWithFormat:@"<img src='%@'></img>", GIF_URL] forType:NSPasteboardTypeHTML];
It works for all most apps that support pasting animated GIFs.
I would love to have integration with Slack. There are so many GIFs I need to annoy my co-workers with!
We've used Giphy integrations before but their /giphy
command really seems to suck. So either a slash command or even just "Share via Slack" type integration from the app.
Thanks
Currently, I just have a bookmark folder in Chrome with a ton of Gifs I use. It would be awesome if I could make a custom list and just add the imgur links to that custom list, not use a tumblr or reddit.
It would also be nice to add custom tagging to easily find gifs a bit better. The search didn't always seem that reliable.
Keep up the work, love the app! :D
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.